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

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

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

नया खाता कैसे बनाएं Codeइग्नाइटर परियोजना

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

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

cd C:\Sites

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

composer create-project CodeIgniter/framework ci-app

यहाँ,

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

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

कोई नया बनाएं Codeइग्नाइटर परियोजना

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

cd ci-app

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

 php -S localhost:3000

यहाँ,

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

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

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

कोई नया बनाएं Codeइग्नाइटर परियोजना

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

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

Codeइग्नाइटर रूटिंग

अभी के लिए, हमारे एप्लिकेशन में केवल एक ही 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 त्रुटि तब होती है जब कोई पृष्ठ नहीं मिलता है। CodeIgniter में त्रुटि के लिए एक डिफ़ॉल्ट हैंडलर होता है, लेकिन यदि आप चाहें तो आप अपना स्वयं का हैंडलर परिभाषित कर सकते हैं।
  • $route['translate_uri_dashes'] = FALSE; यह विकल्प आपको डैश को अंडरस्कोर में बदलने की अनुमति देता है। हम इस विकल्प के बारे में तब बात करेंगे जब हम देखेंगे कि रूट कैसे काम करते हैं। Codeइग्नाइटर।

आइए अब उस कंट्रोलर विधि को देखें जो उस होम पेज को प्रदर्शित करने के लिए जिम्मेदार है जिसे हमने 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');
	}
}

यहाँ,

  • Defined ('BASEPATH') OR exit('No direct script access allowed'); 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 निर्देशिका में स्थित है

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

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/

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

Codeइग्नाइटर रूटिंग

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

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

रूट फ़ाइल 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

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

एक व्यू बनाएं Codeआग लगनेवाला

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

सारांश

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

इस पोस्ट को संक्षेप में इस प्रकार लिखें: