PHP MVC फ्रेमवर्क ट्यूटोरियल: CodeIgniter उदाहरण

विषय - सूची:

Anonim

PHP MVC फ्रेमवर्क क्या है?

PHP MVC एक एप्लिकेशन डिज़ाइन पैटर्न है जो एप्लिकेशन डेटा और व्यावसायिक तर्क (मॉडल) को प्रस्तुति (दृश्य) से अलग करता है। MVC का अर्थ है मॉडल, दृश्य और नियंत्रक।

नियंत्रक मॉडल और विचारों के बीच मध्यस्थता करता है।

एक कार और चालक के रूप में एमवीसी डिजाइन पैटर्न के बारे में सोचो।

कार में विंडस्क्रीन (दृश्य) होता है जिसे ड्राइवर (नियंत्रक) आगे की ट्रैफिक की निगरानी के लिए उपयोग करता है फिर गति या ब्रेक (मॉडल) पर निर्भर करता है कि वह आगे क्या देखता है।

PHP MVC फ्रेमवर्क का उपयोग क्यों करें?

  • PHP MVC फ्रेमवर्क जटिल तकनीकों के साथ काम करने को सरल बनाता है;
    • सभी जटिल कार्यान्वयन विवरणों को छिपाना
    • मानक तरीके प्रदान करना जिनका उपयोग हम अपने अनुप्रयोगों के निर्माण के लिए कर सकते हैं।
    • डेवलपर उत्पादकता में वृद्धि, इसका कारण यह है कि गतिविधियों का आधार कार्यान्वयन जैसे डेटाबेस से जुड़ना, उपयोगकर्ता इनपुट को सैनिटाइज़ करना आदि पहले से ही आंशिक रूप से लागू होते हैं।
    • पेशेवर कोडिंग मानकों का पालन

इस ट्यूटोरियल में, आप सीखेंगे-

  • PHP MVC डिज़ाइन पैटर्न
  • PHP MVC फ्रेमवर्क के प्रकार
  • CodeIgniter के लिए जनमत सर्वेक्षण आवेदन को पोर्ट करना
  • डेटाबेस कॉन्फ़िगरेशन सेटिंग्स
  • हमारे मॉडल का निर्माण
  • हमारे दृश्य बनाना
  • हमारे आवेदन का परीक्षण

PHP MVC डिज़ाइन पैटर्न

आइए अब संक्षेप में MVC डिज़ाइन पैटर्न के प्रत्येक घटक पर चर्चा करें।

मॉडल - यह भाग व्यावसायिक तर्क और अनुप्रयोग डेटा से संबंधित है। इसका उपयोग डेटा सत्यापन करने, डेटा को प्रोसेस करने और इसे स्टोर करने के लिए किया जा सकता है। डेटा से आ सकता है;

  • सरल फ़ाइल
  • डेटाबेस
  • XML दस्तावेज़
  • अन्य मान्य डेटा स्रोत।

नियंत्रक - यह सर्वर से संसाधनों के लिए उपयोगकर्ताओं के अनुरोधों से संबंधित है।

एक उदाहरण के रूप में, जब उपयोगकर्ता URL… /index.php?products=list के लिए अनुरोध करते हैं, तो नियंत्रक उत्पादों के डेटा को पुनः प्राप्त करने के लिए उत्पाद मॉडल को लोड करेगा फिर सूची दृश्य में परिणाम आउटपुट करेगा।

संक्षेप में, नियंत्रक अनुरोधित संसाधनों के आधार पर मॉडल और विचारों को एक साथ जोड़ता है।

दृश्य - यह भाग उपयोगकर्ता को डेटा प्रस्तुत करने से संबंधित है। यह आमतौर पर HTML पृष्ठों के रूप में होता है।

PHP MVC फ्रेमवर्क के प्रकार

सबसे अच्छा PHP फ्रेमवर्क का चयन करना एक चुनौती है।

आपको MVC के लाभों से लाभ उठाने के लिए अपना स्वयं का ढांचा लिखने की आवश्यकता नहीं है।

आपको केवल MVC फ्रेमवर्क कैसे काम करते हैं, यह समझने के लिए अपने स्वयं के MVC संबंधित एप्लिकेशन डिज़ाइन बनाने का प्रयास करना चाहिए।

एक बार जब आप MVC फ्रेमवर्क के काम करने के तरीके से सहज हो जाते हैं, तो आपको परिपक्व और पहले से ही परीक्षण किए गए फ्रेमवर्क पर आगे बढ़ना चाहिए।

नीचे दी गई तालिका में कुछ लोकप्रिय php चौखटे और प्रत्येक रूपरेखा प्रदान करने वाली विशेषताओं के बारे में बताया गया है।

ढांचा विवरण
CodeIgniter https://codeigniter.com/ यह सबसे लोकप्रिय PHP MVC फ्रेमवर्क में से एक है। यह हल्का है और इसमें एक छोटा सीखने की अवस्था है। इसमें पुस्तकालयों का एक समृद्ध समूह है जो वेबसाइटों और अनुप्रयोगों को तेजी से बनाने में मदद करता है। OOP प्रोग्रामिंग के सीमित ज्ञान वाले उपयोगकर्ता भी इसका उपयोग कर सकते हैं। CodeIgniter संचालित अनुप्रयोगों में शामिल हैं;
  • https://www.pyrocms.com/
  • http://www.shopigniter.com/
कोहना http://kohanaframework.org यह एक पदानुक्रमित मॉडल दृश्य नियंत्रक HMVC सुरक्षित और हल्का ढांचा है। यह तेजी से अनुप्रयोगों के विकास के लिए घटकों का एक समृद्ध सेट है। कोहन का उपयोग करने वाली कंपनियों में शामिल हैं;
  • https://go.wepay.com/
  • https://kids.nationalgeographic.com/
  • https://www.sittercity.com/
CakePHP www.cakephp.org यह रूबी के बाद पटरियों पर बनाया गया है। यह सॉफ्टवेयर डिजाइन पैटर्न, कॉन्फ्रेंस ओवर कॉन्फिगरेशन, ActiveRecord आदि जैसे अवधारणाओं के लिए जाना जाता है।
  • http://invoicemachine.com/
  • http://www.fmylife.com/
www.framework.zend.com ज़ेंड यह एक शक्तिशाली ढांचा है;
  • सुरक्षित, विश्वसनीय, तेज और स्केलेबल
  • वेब 2.0 और वेब सेवाओं के निर्माण का समर्थन करता है।
इसमें Amazon, Google, Flickr, Yahoo आदि विक्रेताओं के एपीआई हैं। यह व्यावसायिक अनुप्रयोगों को विकसित करने के लिए आदर्श है। Zend संचालित अनुप्रयोगों में शामिल हैं;
  • पिमकोर सीएमएस,
  • डॉट कर्नेल।
Zend ढांचे का उपयोग करने वाली कंपनियों में शामिल हैं;
  • बीबीसी
  • सिस्को
  • वेबएक्स
  • ऑफ़र। Com

CodeIgniter के लिए जनमत सर्वेक्षण आवेदन को पोर्ट करना

इस ट्यूटोरियल में, हमने एक PHP पोल एप्लिकेशन बनाया। यहां, हम उस कोड को CodeIgniter में पोर्ट कर देंगे

  • उनकी वेबसाइट से CodeIgniter का नवीनतम संस्करण डाउनलोड करें।
  • अपने वेब सर्वर निर्देशिका में अपने विकास निर्देशिका के लिए ज़िपित फ़ाइल की सामग्री निकालें। हम इस पाठ में फ़ोल्डर नाम के रूप में ciopinionpoll का उपयोग करेंगे।
  • URL पर ब्राउज़ करें http: // localhost / ciopinionpoll /

अब हम CodeIgniter के लिए अपने जनमत सर्वेक्षण आवेदन को पोर्ट करने जा रहे हैं। याद रखें कि हमारे आवेदन को तीन प्रमुख घटकों में विभाजित किया गया था अर्थात्;

  • फ्रंट कंट्रोलर - यह वह भाग है जो URL अनुरोधों का जवाब देता है और अनुरोधित पृष्ठ को लौटाता है। यह कोड कंट्रोलर में जाएगा
  • मॉडल - यह वह कोड है जो अनुरोधित डेटा के लिए प्रतिक्रिया करता है और अनुरोधित डेटा को वापस करता है। यह कोड मॉडल में जाएगा
  • दृश्य - यह डेटा को प्रारूपित करने और प्रदर्शित करने के लिए जिम्मेदार कोड है। यह कोड दृश्य में जाएगा
    • Ciopinionpoll फ़ोल्डर में ब्राउज़ करें
    • डेटाबेस / एफपी फाइल को एप्लिकेशन / कॉन्फिग डायरेक्टरी में स्थित खोलें।
    • कोड की निम्नलिखित पंक्तियों का पता लगाएँ

डेटाबेस कॉन्फ़िगरेशन सेटिंग्स

  • उपयोगकर्ता नाम को रूट पर सेट करें
  • पासवर्ड को अपने लोकलहोस्ट रूट पासवर्ड पर सेट करें
  • राय_poll के लिए डेटाबेस का नाम। नोट हम पिछले पाठ में बनाए गए डेटाबेस का उपयोग करेंगे।
  • परिवर्तनों को सहेजें और फ़ाइल को बंद करें।

हमारे मॉडल का निर्माण

आगे हम अपना मॉडल बनाने जा रहे हैं जो CI_Model का विस्तार करेगा। CI_Model CodeIgniter लाइब्रेरी का हिस्सा है। मॉडल एप्लिकेशन / मॉडल राय_पॉल_मॉडल.php में स्थित होगा

load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?>

यहां,

  • "वर्ग Opinion_poll_model CI_Model का विस्तार करता है ..." हमारा मॉडल है जो CI_Model का विस्तार करता है
  • "... माता-पिता :: __construct ();" CI_Model निर्माता को कॉल करता है
  • "$ यह-> लोड-> डेटाबेस ();" डेटाबेस लाइब्रेरी को लोड करता है ताकि हमारा एप्लिकेशन डेटाबेस के साथ बातचीत कर सके
  • "यह $-> db->" कोडआईग्निटर का सक्रिय रिकॉर्ड है। सक्रिय रिकॉर्ड पर अधिक जानकारी के लिए इस लिंक की जाँच करें।

हमारे नियंत्रक बनाना अब नियंत्रक बनाते हैं। हम अनुप्रयोग / नियंत्रकों / स्वागत.फैप में स्थित डिफ़ॉल्ट CodeIgniter नियंत्रक का उपयोग करेंगे। इसके सोर्स कोड को निम्न कोड से बदलें।

load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>

यहां,

  • "अगर (परिभाषित; यह सुनिश्चित करता है कि उपयोगकर्ता सीधे नियंत्रक वर्ग का उपयोग न करें
  • "वर्ग में आपका स्वागत है CI_Controller विस्तार ..." हमारे नियंत्रक CI_Controller कक्षा फैली हुई है
  • "सार्वजनिक समारोह __construct ()" CI_Controller की कक्षा के अवरोधक विधि को कॉल करता है और हमारे Opinion_poll_model मॉडल को लोड करता है
  • "सार्वजनिक फ़ंक्शन इंडेक्स () ..." फ़ंक्शन है जो index.php में मैप करता है। यह जांचने के लिए कि यदि कोई वोट जमा किया गया है, तो उसे डेटाबेस में जोड़ें, फिर परिणामों को प्रदर्शित करने के लिए CodeIgniter के इनपुट वर्ग का उपयोग करता है। यदि इनपुट क्लास का पोस्ट एरे खाली है, तो यह वोटिंग पेज को लोड करता है।
  • "$ यह-> इनपुट-> पोस्ट ('...')" कोडइंटराइटर इनपुट क्लास है जो $ _POST वैश्विक चर की सामग्री को पकड़ता है।
  • "$ इस-> राय_पॉल_मॉडल-> add_vote ($ इस-> इनपुट-> पोस्ट ('वोट'))" डेटाबेस में वोट जोड़ने के लिए मॉडल के add_vote विधि को कहते हैं।

हमारे दृश्य बनाना

पिछले उदाहरण से याद करें कि हमारे दो HTML पृष्ठ थे, एक मतदान के लिए और दूसरा परिणाम के लिए। हम अपने विचारों को बनाने के लिए न्यूनतम संशोधनों के साथ एक ही HTML कोड का उपयोग करेंगे। आवेदन / विचार निर्देशिका में निम्नलिखित फाइलें बनाएँ

opinion_poll_form.phpJavaScript Libraries - Opinion Poll

JavaScript Libraries - Opinion Poll

What is your favorite JavaScript Library?

JQuery
MooTools
YUI Library
Glow

अब परिणाम पृष्ठ results.php बनाते हैं

JavaScript Libraries - Opinion Poll Results

JavaScript Libraries - Opinion Poll Results

What is your favorite JavaScript Library?

people have thus far taken part in this poll:

Return to voting page

हमारे आवेदन का परीक्षण

मान लें कि आपके एप्लिकेशन की रूट डायरेक्टरी ciopinion है, http: // localhost / ciopionpoll / के लिए ब्राउज़ करें

ओके बटन पर क्लिक करें, आपको निम्न चेतावनी संदेश दिखाई देगा

अपने पसंदीदा उम्मीदवार के लिए वोट करें फिर ओके पर क्लिक करें आप निम्नलिखित परिणाम पृष्ठ देखेंगे

निष्कर्ष

CodeIgniter PHP MVC फ्रेमवर्क को सीखना और उपयोग करना आसान है जो विकासशील अनुप्रयोगों में लगने वाले समय को बहुत कम कर सकता है।

सारांश

  • एक फ्रेमवर्क पुस्तकालयों का एक समूह है जो सामान्य कार्यों का आंशिक कार्यान्वयन प्रदान करता है।
  • PHP में कई ओपन सोर्स परिपक्व और परीक्षण किए गए MVC फ्रेमवर्क हैं।
  • एक अच्छा विकास दृष्टिकोण प्रस्तुति से डेटा को अलग करता है और एक आवेदन में एकल प्रविष्टि बिंदु के उपयोग को प्रोत्साहित करता है।
  • पारंपरिक PHP अनुप्रयोग जो अनुप्रयोग डिज़ाइन सर्वोत्तम प्रथाओं का पालन करते हैं, उन्हें न्यूनतम संशोधनों के साथ MVC फ्रेमवर्क में पोर्ट किया जा सकता है।