MVC क्या है?
मॉडल-व्यू-कंट्रोल के लिए एमवीसी मानक। यह एक वास्तुशिल्प पैटर्न है जो एप्लिकेशन को तीन प्रमुख घटकों में विभाजित करता है।
1. बिजनेस लॉजिक और डेटाबेस इंटरैक्शन के साथ मॉडल डील
2. नियंत्रक मॉडल और दृश्य के बीच की गतिविधियों का समन्वय करता है
3. दृश्य डेटा प्रस्तुति के लिए जिम्मेदार है
एमवीसी वास्तुशिल्प पैटर्न के कुछ फायदे निम्नलिखित हैं
- ढीले युग्मन-घटकों का अस्तित्व होता है और एक दूसरे से स्वतंत्र रूप से कार्य करते हैं।
- लचीलापन - एक व्यक्ति घटकों को आसानी से बदल सकता है
- उत्पादकता में वृद्धि - एक ही समय में एक से अधिक व्यक्ति परियोजना पर काम कर सकते हैं। फ्रंट-एंड डेवलपर्स, दृश्य और प्रस्तुति पर काम कर सकते हैं, जबकि बैकेंड डेवलपर्स मॉडल पर ध्यान केंद्रित कर सकते हैं और चूंकि सिस्टम शिथिल रूप से युग्मित है, यह दिन के अंत में काम करता है
इस ट्यूटोरियल में, आप सीखेंगे:
- MVC क्या है?
- नमूना
- नियंत्रक
- राय
- MVC फ्रेमवर्क कैसे काम करता है?
- CodeIgniter नियंत्रक
- CodeIgniter मॉडल
नमूना
मॉडल डेटा स्रोतों के साथ बातचीत के लिए जिम्मेदार है। यह आमतौर पर एक डेटाबेस है, लेकिन यह एक सेवा भी हो सकती है जो अनुरोधित डेटा प्रदान करती है। नियंत्रक के विपरीत व्यवसाय तर्क को मॉडल में समाहित करना भी एक आम बात है। इस अभ्यास को आमतौर पर वसा मॉडल पतला नियंत्रक कहा जाता है।
मॉडल आमतौर पर डेटाबेस में डेटा लिखता है, संपादन और अद्यतन करने और डेटा को हटाने के लिए एक तंत्र प्रदान करता है। एक आधुनिक वेब एप्लिकेशन में, मॉडल डेटाबेस को आसान बनाने के लिए डेटा एक्सेस डिज़ाइन पैटर्न जैसे सक्रिय रिकॉर्ड का उपयोग करते हैं।
उदाहरण के लिए, CodeIgniter मॉडलों की सहायता के लिए एक अंतर्निहित पुस्तकालय सक्रिय रिकॉर्ड का उपयोग करता है, जबकि अन्य चौखटे जैसे कि लारवेल एलोक्वेंट ऑब्जेक्ट रिलेशनल मैपर (ORM) का उपयोग करते हैं जो डेटा का उपयोग करते हैं।
नियंत्रक
नियंत्रक उपयोगकर्ताओं से संसाधनों के लिए आने वाले अनुरोधों को सुनता है। यह मॉडल और दृश्य के बीच मध्यवर्ती के रूप में कार्य करता है और कई बार कुछ व्यावसायिक नियमों को भी लागू करता है। मान लीजिए कि नियंत्रक को उपयोगकर्ता को डेटाबेस में पंजीकृत करने का अनुरोध प्राप्त होता है।
नियंत्रक यह सुनिश्चित करने के लिए कि सभी आवश्यक पैरामीटर प्रस्तुत किए गए हैं, पर डेटा सत्यापन कर सकते हैं। यदि कुछ याद आ रहा है तो उपयोगकर्ता को उचित त्रुटि संदेश के साथ पंजीकरण पृष्ठ पर पुनः निर्देशित किया जाता है। नियंत्रक यह भी जाँच कर सकता है कि मॉडल पहले से मौजूद ईमेल पता मौजूद है या नहीं। यदि सभी सत्यापन नियम पास हो जाते हैं, तो नियंत्रक डेटा को प्रक्रिया के लिए मॉडल में सबमिट करता है और प्रतिक्रिया की प्रतीक्षा करता है।
एक बार जब मॉडल ने जानकारी संसाधित कर ली है और एक सकारात्मक प्रतिक्रिया लौटा दी है, तो नियंत्रक उचित दृश्य लोड करता है और एक पैरामीटर के रूप में मॉडल से लौटाए गए डेटा में गुजरता है।
राय
दृश्य अंतिम उपयोगकर्ता के लिए प्रस्तुत डेटा के साथ संबंधित है। वेब अनुप्रयोगों में, अक्सर HTML, CSS और वैकल्पिक जावास्क्रिप्ट शामिल होते हैं। दृश्य में न्यूनतम प्रोग्रामिंग कोड होता है। विचारों में निहित कोड आमतौर पर डेटा को साफ करने या रिकॉर्ड को संपादित करने के लिए लिंक बनाने के लिए मॉडल या सहायक फ़ंक्शन से पैरामीटर के रूप में प्राप्त डेटा के संग्रह के माध्यम से लूप का उपयोग किया जाता है। अधिकांश आधुनिक वेब एप्लिकेशन आमतौर पर टेम्प्लेटिंग इंजन का उपयोग करते हैं जो अपने स्वयं के सिंटैक्स को परिभाषित करते हैं जो कि स्यूडोकोड की तरह है और इसे आसानी से डिजाइनरों द्वारा समझा जा सकता है। CodeIgniter के साथ काम करते समय, छोटे PHP टैग और नियंत्रण संरचनाओं का उपयोग करना आम बात है। CodeIgniter में कुछ प्रदर्शित करने के लिए, कोई निम्नलिखित कोड का उपयोग कर सकता है
विरोध के रूप में
नियंत्रण संरचनाएं आमतौर पर निम्नानुसार लिखी जाती हैं
जैसा कि आप उपरोक्त उदाहरण से देख सकते हैं, दृश्य शुद्ध PHP कोड में सब कुछ घेरने के बजाय PHP और HTML के संयोजन का उपयोग करेगा।
MVC फ्रेमवर्क कैसे काम करता है?
निम्नलिखित छवि एमवीसी ढांचे के कार्यों को दिखाती है
एक नियंत्रक उपयोगकर्ता से अनुरोध प्राप्त करता है, डेटाबेस मॉडल के साथ इंटरैक्ट करता है यदि आवश्यक हो तो परिणाम को वापस ब्राउज़र में HTML कोड के रूप में देता है जिसे ब्राउज़र ने मानव-पठनीय प्रारूप में व्याख्या की और उपयोगकर्ता को प्रदर्शित किया।
CodeIgniter नियंत्रक
आइए अब ब्रेकडाउन करें जब हमने उपरोक्त URL को वेब ब्राउज़र में लोड किया था।
अनुप्रयोग / नियंत्रकों में स्थित Welcome.php नियंत्रक फ़ाइल खोलें
आपको निम्नलिखित कोड देखने में सक्षम होना चाहिए
load->view('welcome_message');}}
यहां,
- परिभाषित ('BASEPATH') या बाहर निकलना ('कोई प्रत्यक्ष स्क्रिप्ट एक्सेस की अनुमति नहीं है'); यदि अनुक्रमणिका.php के माध्यम से अनुरोध नहीं आया, तो नियंत्रक तक सीधे पहुंच को रोकता है। यह सुरक्षा उद्देश्यों के लिए है।
- कक्षा में आपका स्वागत CI_Controller बढ़ाता है {…} स्वागत नियंत्रक वर्ग को परिभाषित करता है और मूल वर्ग CI_Controller का विस्तार करता है
- सार्वजनिक फ़ंक्शन इंडेक्स () {…} URL http: // localhost: 3000 पर प्रतिक्रिया देने वाली अनुक्रमणिका विधि को परिभाषित करता है
- $ यह-> लोड-> दृश्य ('वेलकम_मेज़'); अनुप्रयोग / दृश्य निर्देशिका में स्थित है कि आपका स्वागत_मेज लोड करता है
अब हम अनुक्रमणिका विधि को निम्नानुसार अद्यतन करेंगे
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
यहां,
- $ यह-> लोड-> मॉडल ('customers_model'); ग्राहकों के मॉडल लोड करता है।
- $ डेटा ['ग्राहक'] = $ यह-> customers_model-> get_customer (3); कॉल करने के लिए customers_model की get_customer विधि और पैरामीटर 3 में पास होती है। इस उदाहरण में हमने हार्ड कोडित किया है, लेकिन वास्तविक जीवन के अनुप्रयोगों में यह URI का एक पैरामीटर होगा।
- $ यह-> लोड-> दृश्य ('वेलकम_मेसेज', $ डेटा); स्वागत_मेज दृश्य को लोड करता है और दृश्य में $ डेटा चर में गुजरता है
CodeIgniter मॉडल
आइए अब वह दृश्य बनाएं जिसे हमने उपरोक्त कोड में संदर्भित किया है। सादगी के लिए, हमारा मॉडल डेटाबेस के साथ बातचीत नहीं करेगा, लेकिन एक स्थिर ग्राहक रिकॉर्ड लौटाएगा। हम अगले ट्यूटोरियल में डेटाबेस के साथ काम करेंगे।
अनुप्रयोग / मॉडल में एक फ़ाइल Customer_model.php बनाएँ
निम्न कोड जोड़ें
यहां,
- क्लास customers_model CI_Model का विस्तार करता है {…} CI_Model का विस्तार करने वाले Model_model को परिभाषित करता है।
- सार्वजनिक फ़ंक्शन get_customer ($ id) {…} ग्राहक आईडी के आधार पर ग्राहक की प्राप्त विधि को परिभाषित करता है
- $ डेटा […] हमारे काल्पनिक ग्राहक के स्थिर मूल्यों को परिभाषित करता है। यह डेटाबेस से दी गई एक पंक्ति होनी चाहिए।
- $ डेटा लौटाएं; ग्राहक का डेटा लौटाता है।
यही है, यह हमारे मॉडल के लिए है। चलिए अब welcome_message view को संशोधित करते हैं
में स्थित आपका स्वागत है
application/views/welcome_message.php
निम्नलिखित के साथ कोड बदलें
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
परिवर्तनों को सुरक्षित करें
वेब ब्राउज़र में निम्न URL लोड करें
http: // लोकलहोस्ट: 3000 /
आपको ग्राहक कार्ड देखने में सक्षम होना चाहिए जैसा कि नीचे दी गई छवि में दिखाया गया है
सारांश
- MVC एक वास्तुशिल्प पैटर्न है जो एप्लिकेशन को तीन प्रमुख घटकों में विभाजित करता है
- मॉडल डेटा स्रोतों के साथ बातचीत के लिए जिम्मेदार है
- नियंत्रक उपयोगकर्ताओं से संसाधनों के लिए आने वाले अनुरोधों को सुनता है
- वेब अनुप्रयोगों में, अक्सर HTML, CSS और वैकल्पिक जावास्क्रिप्ट शामिल होते हैं
- एक नियंत्रक उपयोगकर्ता से अनुरोध प्राप्त करता है, डेटाबेस मॉडल के साथ इंटरैक्ट करता है यदि आवश्यक हो तो परिणाम को वापस HTML कोड के रूप में ब्राउज़र में देता है