कोडइग्निटर कंट्रोलर, व्यू रूटिंग: उदाहरण ऐप के साथ सीखें

इस ट्यूटोरियल में आप निम्नलिखित विषयों के बारे में जानेंगे।

  • मार्ग - रूटिंग URL अनुरोधों का जवाब देने के लिए जिम्मेदार है। रूटिंग URL को पूर्व-निर्धारित रूट से मेल खाता है। यदि कोई रूट मैच नहीं मिलता है, तो कोड इग्निटर एक अपवाद के रूप में पेज नहीं मिला फेंकता है।
  • नियंत्रक - रूट नियंत्रकों से जुड़े होते हैं। नियंत्रक मॉडल और दृश्यों को एक साथ जोड़ते हैं। मॉडल से डेटा/व्यावसायिक तर्क के लिए अनुरोध और दृश्य की प्रस्तुति में परिणाम लौटाते हैं। एक बार जब URL किसी रूट से मेल खाता है, तो उसे नियंत्रक के सार्वजनिक फ़ंक्शन पर अग्रेषित किया जाता है। यह फ़ंक्शन डेटा स्रोत, व्यावसायिक तर्क के साथ इंटरैक्ट करता है और परिणाम प्रदर्शित करने वाला दृश्य लौटाता है।
  • दृश्य - दृश्य प्रस्तुति के लिए जिम्मेदार हैं। एक दृश्य आम तौर पर HTML, CSS और का संयोजन होता है Javaस्क्रिप्ट। यह वह हिस्सा है जो उपयोगकर्ता को वेब पेज दिखाने के लिए जिम्मेदार है। आमतौर पर, प्रदर्शित डेटा आमतौर पर डेटाबेस या किसी अन्य उपलब्ध डेटा स्रोत से प्राप्त किया जाता है।

नया CodeIgniter प्रोजेक्ट कैसे बनाएं

हम एक नया प्रोजेक्ट बनाने के लिए कंपोजर का उपयोग करेंगे। मैं PHP बिल्ट-इन सर्वर का उपयोग करूंगा, इसलिए अतिरिक्त सॉफ़्टवेयर जैसे कि अपाचेइस ट्यूटोरियल में, हम उपयोग कर रहे हैं Windows ऑपरेटिंग सिस्टम। इसलिए, हमने ड्राइव C पर एक साइट्स फ़ोल्डर बनाया है। आप अपने लिए उपयुक्त किसी भी निर्देशिका का उपयोग कर सकते हैं।

कमांड लाइन/टर्मिनल खोलें और निम्नलिखित कमांड चलाएँ

cd C:\Sites

अब हम कंपोजर का उपयोग करके एक कोड इग्निटर प्रोजेक्ट बनाएंगे। निम्न कमांड चलाएँ

composer create-project CodeIgniter/framework ci-app

यहाँ,

  • उपरोक्त कमांड नवीनतम स्थिर रिलीज अर्थात 3 का उपयोग करके ci-app निर्देशिका में एक नया CodeIgniter प्रोजेक्ट संस्करण 3.1.9 बनाता है।

जब उपरोक्त कमांड चलना पूर्ण हो जाए, तो आपको टर्मिनल में निम्नलिखित के समान परिणाम देखने को मिलेंगे

एक नया CodeIgniter प्रोजेक्ट बनाएं

नव निर्मित प्रोजेक्ट निर्देशिका ci-app पर ब्राउज़ करने के लिए निम्न कमांड चलाएँ

cd ci-app

आइये अब PHP अंतर्निहित वेब सर्वर शुरू करें

 php -S localhost:3000

यहाँ,

  • उपरोक्त कमांड पोर्ट 3000 पर चल रहे अंतर्निहित PHP सर्वर को प्रारंभ करता है।

वेब ब्राउज़र खोलें और निम्नलिखित URL ब्राउज़ करें: http://localhost:3000/

आपको निम्न पेज मिलेगा

एक नया CodeIgniter प्रोजेक्ट बनाएं

यदि आप उपरोक्त पृष्ठ देख सकते हैं तो बधाई हो, आपने सफलतापूर्वक इंस्टॉल कर लिया है CodeIgniter.

जैसा कि आप उपरोक्त वेब पेज से पढ़ सकते हैं, ऊपर प्रदर्शित पेज application/views/welcome_message.php में स्थित दृश्य द्वारा प्रस्तुत किया गया है और जिम्मेदार नियंत्रक application/controllers/Welcome.php में स्थित है

कोडइग्निटर रूटिंग

अभी के लिए, हमारे एप्लिकेशन में केवल एक ही URL है जो होम पेज है। इस अनुभाग में, हम होम सेक्शन को कस्टमाइज़ करेंगे। हम कुछ नए URL बनाएंगे जो अलग-अलग अनुरोधों का जवाब देंगे।

आइये होम पेज रूट से शुरू करें

नीचे दिए गए पथ द्वारा संकेतित रूट फ़ाइल खोलें

application/config/routes.php

आपको निम्नलिखित सामग्री देखने में सक्षम होना चाहिए

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

यहाँ,

  • $route['default_controller'] = 'welcome'; डिफ़ॉल्ट नियंत्रक को परिभाषित करता है जो URI अनुरोधों का जवाब देता है
  • $route['404_override'] = ”; यह रूट आपको 404 त्रुटियों के लिए एक कस्टम रूट परिभाषित करने की अनुमति देता है। 404 त्रुटि तब होती है जब कोई पृष्ठ नहीं मिलता है। कोड इग्निटर में त्रुटि के लिए एक डिफ़ॉल्ट हैंडलर है, लेकिन आप चाहें तो अपना खुद का परिभाषित कर सकते हैं।
  • $route['translate_uri_dashes'] = FALSE; यह विकल्प आपको डैश को अंडरस्कोर में बदलने की अनुमति देता है। जब हम देखेंगे कि CodeIgniter में रूट कैसे काम करते हैं, तो हम इस विकल्प के बारे में बात करेंगे।

आइए अब उस कंट्रोलर विधि को देखें जो उस होम पेज को प्रदर्शित करने के लिए जिम्मेदार है जिसे हमने URL खोलने पर देखा था http://localhost:3000/ वेब ब्राउज़र में.

निम्न फ़ाइल खोलें

application/controllers/Welcome.php

आपको निम्नलिखित कोड देखने में सक्षम होना चाहिए

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

	public function index()
	{
		$this->load->view('welcome_message');
	}
}

यहाँ,

  • परिभाषित ('BASEPATH') या exit('कोई प्रत्यक्ष स्क्रिप्ट एक्सेस की अनुमति नहीं है'); index.php फ़ाइल से गुज़रे बिना सीधे कंट्रोलर क्लास तक पहुँचने से बचाता है। याद रखें, MVC प्रतिमान में सभी अनुरोधों का एक ही प्रवेश बिंदु होता है, और CodeIgniter के लिए, इसका index.php होता है। यह कोड उन सभी अनुरोधों को ब्लॉक करता है जो index.php के माध्यम से नहीं आते हैं
  • क्लास वेलकम CI_Controller को विस्तारित करता है {…} एक क्लास वेलकम को परिभाषित करता है जो पैरेंट क्लास CI_Controller को विस्तारित करता है
  • public function index() एक सार्वजनिक फ़ंक्शन को परिभाषित करता है जिसे होमपेज खोलने पर डिफ़ॉल्ट रूप से कॉल किया जाता है
  • $this->load->view('welcome_message'); यह लाइन view Welcome_message को लोड करती है। फ़ाइल Welcome_message application/views/welcome_message.php निर्देशिका में स्थित है

अभी तक हमने केवल यह पता लगाया है कि CodeIgniter के साथ क्या आता है, आइए अब कुछ बदलाव करने की कोशिश करते हैं। हम अपना होम पेज बनाएंगे और डिफ़ॉल्ट पेज को बदल देंगे

application/views/home.php में एक नई फ़ाइल बनाएँ

निम्नलिखित कोड को home.php में जोड़ें

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Hello CodeIgniter!</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
        <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
    </head>
    <body>
        <section class="section">
            <div class="container">
                <h1 class="title">
                    CodeIgniter Hello World
                </h1>
            </div>
        </section>
    </body>
</html>

यहाँ,

उपरोक्त HTML कोड बर्मा SSS फ्रेमवर्क और CDN नेटवर्क से फ़ॉन्ट लोड करता है और एक बहुत ही बुनियादी HTML दस्तावेज़ बनाता है। यह बर्मा CSS फ्रेमवर्क से बहुत सरल CSS नियम लागू करता है।

अपने ब्राउज़र में निम्नलिखित URL खोलें: http://localhost:3000/

आपको निम्नलिखित देखने में सक्षम होना चाहिए

कोडइग्निटर रूटिंग

बढ़िया, हमने अभी-अभी होम पेज को सफलतापूर्वक संशोधित किया है। आगे बढ़ते हुए, आइए अपना रूट परिभाषित करें। मान लें कि हमारे एप्लिकेशन को हमारे बारे में पेज दिखाने में भी सक्षम होना चाहिए।

एक मार्ग बनाएं

रूट फ़ाइल application/config.routes.php खोलें

निम्नलिखित मार्ग जोड़ें

$route['about-us'] = 'welcome/about_us';

यहाँ,

  • जब कोई आगंतुक URL /about-us पर जाता है, तो हम CodeIgniter को Welcome नियंत्रक की तलाश करने और about_us विधि को निष्पादित करने का निर्देश देते हैं।

नियंत्रक बनाएँ

आइये अब हमारे बारे में नियंत्रक विधि को परिभाषित करें

एप्लीकेशन/कंट्रोलर्स/वेलकम.php खोलें

निम्नलिखित विधि जोड़ें

public function about_us(){
            $this->load->view('about_us');
        }

यहाँ,

  • उपरोक्त कोड एक फ़ंक्शन about_us को परिभाषित करता है और एक दृश्य about_us लोड करता है।

एक दृश्य बनाएं

आइए अब वह दृश्य बनाएं जिसका हमने ऊपर वाले अनुभाग में संदर्भ दिया है

application/views/about_us.php में एक नई फ़ाइल about_us.php बनाएँ

निम्नलिखित कोड जोड़ें

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>About CodeIgniter!</title>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css">
        <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
    </head>
    <body>
        <section class="section">
            <div class="container">
                <h1 class="title">
                    About us yap...                
                </h1>
            </div>
        </section>
    </body>
</html>

हम आगे बढ़ने के लिए तैयार हैं, अपने वेब ब्राउज़र में निम्नलिखित URL खोलें: http://localhost:3000/index.php/about-us

आपको निम्न पेज दिखाई देगा

CodeIgniter में एक दृश्य बनाएँ

यदि आप उपरोक्त पृष्ठ देख पा रहे हैं तो बधाई हो, आपने कोडइग्निटर में सफलतापूर्वक एक सरल अनुप्रयोग बना लिया है।

सारांश

इस ट्यूटोरियल में, हमने तीन (3) प्रमुख घटकों को कवर किया है जो एक CodeIgniter एप्लिकेशन बनाते हैं। हमने रूट और उन्हें कैसे परिभाषित किया जाए, नियंत्रक और रूट अनुरोधों का जवाब देने वाले तरीकों को कैसे बनाया जाए और सरल दृश्य बनाए जो उपयोगकर्ताओं को संसाधन के लिए अनुरोध करने पर वापस कर दिए जाते हैं, इस पर ध्यान दिया।