Codeइग्नाइटर फ़ोल्डर, फ़ाइल और निर्देशिका संरचना
⚡ स्मार्ट सारांश
CodeIgniter एक PHP प्रोजेक्ट को एप्लिकेशन लॉजिक, फ्रेमवर्क सिस्टम फाइलों, कंपोजर वेंडर पैकेजों और एक सिंगल एंट्री स्क्रिप्ट के लिए अनुमानित फोल्डरों में व्यवस्थित करता है, ताकि शुरुआती लोग कोड को जल्दी से ढूंढ सकें और मध्यवर्ती डेवलपर एक साफ MVC संरचना को स्केल कर सकें।

फ़ाइल संरचना को समझना Codeकिसी भी वास्तविक एप्लिकेशन को बनाने से पहले इग्नाइटर का ज्ञान अनिवार्य है। एक सुनियोजित लेआउट आपको कंट्रोलर, मॉडल और व्यू को जल्दी से ढूंढने, रूटिंग संबंधी समस्याओं को डीबग करने और नए टीम सदस्यों को तेजी से शामिल करने में मदद करता है। यह ट्यूटोरियल क्लासिक इग्नाइटर के बारे में जानकारी देता है। Codeयह लेख Igniter 3 की संरचना के बारे में है जो अभी भी व्यापक रूप से उपयोग में है, और साथ ही उन प्रमुख अंतरों को भी स्पष्ट करता है जिनका सामना आपको इसमें करना पड़ेगा। CodeIgniter 4.x, जो app/, public/, और writable/ को अलग-अलग शीर्ष-स्तरीय फ़ोल्डरों के रूप में पेश करता है।
क्या है CodeIgniter फ़ाइल और डायरेक्टरी संरचना?
RSI CodeIgniter फ़ाइल संरचना, फ़ोल्डरों और PHP फ़ाइलों की डिफ़ॉल्ट व्यवस्था है जो फ़्रेमवर्क डाउनलोड या इंस्टॉल करने के बाद इसके साथ आती है। यह आपके एप्लिकेशन लॉजिक को फ़्रेमवर्क कोर से अलग करती है, कंपोज़र निर्भरताओं को पृथक रखती है, और index.php के माध्यम से एक एकल प्रवेश बिंदु प्रदान करती है। निम्नलिखित छवि फ़ाइल संरचना को दर्शाती है। Codeइग्नाइटर:
यहां एक नए डेटाबेस के लिए सरलीकृत निर्देशिका ट्री दिया गया है। Codeइग्नाइटर 3 की स्थापना:
// CodeIgniter 3 root layout project-root/ ├── application/ ├── system/ ├── user_guide/ ├── vendor/ ├── composer.json ├── composer.lock └── index.php
शीर्ष-स्तरीय फ़ोल्डरों की व्याख्या
आइए अब ऊपर दी गई फाइलों को देखें। Codeइग्नाइटर संरचना:
- आवेदन – यह वह डायरेक्टरी है जिसमें आपके एप्लिकेशन का लॉजिक होगा। आपके एप्लिकेशन का सारा कोड इसी डायरेक्टरी में होगा।
- प्रणाली - इस फ़ोल्डर में फ्रेमवर्क कोर फ़ाइलें हैं। इस निर्देशिका में परिवर्तन करने या अपना खुद का एप्लिकेशन कोड इस निर्देशिका में डालने की सलाह नहीं दी जाती है।
- उपयोगकर्ता गाइड - इस निर्देशिका में उपयोगकर्ता मैनुअल शामिल है Codeआग लगनेवाला.
- विक्रेता – इस डायरेक्टरी में कंपोज़र पैकेज का सोर्स कोड मौजूद है। इस डायरेक्टरी से संबंधित अन्य फाइलें composer.json और composer.lock हैं।
- index.php - यह एप्लिकेशन में प्रवेश बिंदु है।
Codeइग्नाइटर एप्लिकेशन उपनिर्देशिकाएँ
आइए अब निर्देशिकाओं को और विस्तार से देखें। जैसा कि बताया गया है, एप्लिकेशन निर्देशिका में आपका प्रोजेक्ट कोड होता है। इस अनुभाग में, हम इसके आंतरिक उपनिर्देशिकाओं को देखेंगे। Codeइग्नाइटर डायरेक्टरी संरचना:
- कैश – यह आउटपुट और डेटाबेस कैशिंग लाइब्रेरी द्वारा उत्पन्न कैश्ड फ़ाइलों को संग्रहीत करता है।
- विन्यास – यह database.php, routes.php और autoload.php जैसी कॉन्फ़िगरेशन फ़ाइलों को सुरक्षित रखता है।
- नियंत्रकों यहां सभी एप्लिकेशन कंट्रोलर परिभाषित और मैप किए गए हैं। URL खंडों को कार्यों में परिवर्तित करना।
- मूल – इसमें कस्टम कोर क्लास शामिल हैं जो सिस्टम फ़ाइलों का विस्तार करती हैं। उदाहरण के लिए, यदि आप एक बेस कंट्रोलर बनाते हैं जिसका विस्तार अन्य कंट्रोलर को करना चाहिए, तो आप उसे इस डायरेक्टरी में रखेंगे।
- सहायकों – इस निर्देशिका का Codeइग्नाइटर फ़ोल्डर संरचना का उपयोग उपयोगकर्ता-परिभाषित सहायक कार्यों के लिए किया जाता है।
- हुक – इसका उपयोग CI फोल्डर संरचना में कस्टम हुक के लिए किया जाता है जो फ्रेमवर्क निष्पादन चक्र के दौरान सक्रिय होते हैं।
- भाषा – इसका उपयोग उन अनुप्रयोगों के लिए भाषा फ़ाइलों को संग्रहीत करने के लिए किया जाता है जो एक से अधिक भाषाओं का उपयोग करते हैं।
- पुस्तकालयों – कस्टम द्वारा निर्मित लाइब्रेरी को स्टोर करने के लिए उपयोग किया जाता है।
- लॉग – एप्लिकेशन लॉग फाइलें इस डायरेक्टरी में रखी जाती हैं।
- मॉडल सभी एप्लिकेशन मॉडल इसी डायरेक्टरी में परिभाषित किए जाने चाहिए।
- तृतीय पक्ष – इसका उपयोग आपके या अन्य डेवलपर्स द्वारा बनाए गए कस्टम पैकेज के लिए किया जाता है।
- विचारों – एप्लिकेशन व्यू इस डायरेक्टरी में जाते हैं।
यहां एप्लिकेशन सबडायरेक्टरी ट्री का एक उदाहरण दिया गया है:
// application/ subdirectories application/ ├── cache/ ├── config/ ├── controllers/ ├── core/ ├── helpers/ ├── hooks/ ├── language/ ├── libraries/ ├── logs/ ├── models/ ├── third_party/ └── views/
Codeइग्नाइटर सिस्टम उपनिर्देशिकाएँ
अब आइए CI फ़ाइल संरचना में सिस्टम उपनिर्देशिकाओं को देखें। ध्यान रखें कि यहीं पर फ़्रेमवर्क का स्रोत कोड रहता है, इसलिए इस निर्देशिका में मौजूद फ़ाइलों में कोई बदलाव न करें।
- मूल - यह दिल की तरह है Codeइग्नाइटर फ्रेमवर्कफ्रेमवर्क बनाने वाली सभी मुख्य फाइलें यहीं स्थित हैं। यदि आप मुख्य फाइल की कार्यक्षमता बढ़ाना चाहते हैं, तो आपको एप्लिकेशन डायरेक्टरी में एक कस्टम मुख्य फाइल बनानी होगी। इसके बाद, आप अपनी इच्छानुसार व्यवहार को ओवरराइड या नया व्यवहार जोड़ सकते हैं। आपको कभी भी सीधे इसमें बदलाव नहीं करना चाहिए।
- डेटाबेस – डेटाबेस संचालन के लिए आवश्यक डेटाबेस ड्राइवर, कैश और अन्य फाइलें यहां प्रदान की जाती हैं।
- फोंट जैसा कि नाम से ही स्पष्ट है, इस निर्देशिका में फ़ॉन्ट और फ़ॉन्ट से संबंधित जानकारी शामिल है।
- सहायकों – इस निर्देशिका में CodeIgniter स्ट्रक्चर फोल्डर में सहायक फ़ंक्शन होते हैं जो पहले से ही मौजूद होते हैं।
- भाषा – इसमें फ्रेमवर्क द्वारा उपयोग की जाने वाली भाषा फाइलें शामिल हैं।
- पुस्तकालयों – इसमें विभिन्न लाइब्रेरी के सोर्स फ़ाइलें शामिल हैं जो इसके साथ आती हैं। Codeइग्नाइटर बॉक्स से बाहर निकाला गया।
सिस्टम फ़ोल्डर का लेआउट कुछ इस तरह दिखता है:
// system/ subdirectories system/ ├── core/ ├── database/ ├── fonts/ ├── helpers/ ├── language/ └── libraries/
Codeइग्नाइटर उपयोगकर्ता मार्गदर्शिका निर्देशिका
यह निर्देशिका एक संदर्भ मार्गदर्शिका के रूप में कार्य करती है जब आप समझना चाहते हैं Codeइग्नाइटर एपीआई। आपको अपने एप्लिकेशन को प्रोडक्शन में डिप्लॉय करते समय इस डायरेक्टरी को अपलोड नहीं करना चाहिए, क्योंकि इससे आकार बढ़ता है और ऐसे दस्तावेज़ सामने आते हैं जिनका लाइव सर्वर पर कोई स्थान नहीं है।
Codeइग्नाइटर विक्रेता निर्देशिका
इस डायरेक्टरी में उन पैकेजों की सोर्स फाइलें हैं जिन्हें आप कंपोज़र के माध्यम से इंस्टॉल करते हैं। इस डायरेक्टरी में मौजूद फाइलों को यथावत रखा जाना चाहिए और उनमें कोई बदलाव नहीं किया जाना चाहिए। user_guide डायरेक्टरी के विपरीत, यदि आप अपने एप्लिकेशन में कंपोज़र पैकेजों का उपयोग कर रहे हैं तो इस डायरेक्टरी को अपलोड किया जाना चाहिए।
index.php फ़ाइल
index.php फ़ाइल में Codeइग्नाइटर फ़ाइल संरचना में बूटस्ट्रैप कोड होता है जो फ्रेमवर्क को नियंत्रण सौंपने से पहले वातावरण, पथ और त्रुटि रिपोर्टिंग को परिभाषित करता है। यह फ़ाइल रूट डायरेक्टरी में स्थित होती है और प्रत्येक आने वाले HTTP अनुरोध के लिए फ्रंट कंट्रोलर के रूप में कार्य करती है।
कैसे Codeइग्निटर 4 संरचना में बदलाव करता है
CodeIgniter 4.x ने सुरक्षा और PSR-4 ऑटोलोडिंग को बेहतर बनाने के लिए लेआउट को पुनर्गठित किया है। एक ही एप्लिकेशन फ़ोल्डर के बजाय, अब आपको तीन शीर्ष-स्तरीय फ़ोल्डर दिखाई देते हैं जो कार्यों को अधिक सख्ती से अलग करते हैं:
- एप्लिकेशन / – यह पुराने application/ फ़ोल्डर के समतुल्य है, जिसमें कंट्रोलर, मॉडल, व्यू, कॉन्फ़िग, फ़िल्टर और लाइब्रेरी शामिल हैं।
- जनता/ – यह एकमात्र वेब-एक्सपोज़्ड फ़ोल्डर है, जिसमें index.php और आपके CSS, JS और इमेज एसेट्स शामिल हैं।
- लिखने योग्य/ – यह कैश, लॉग, सेशन और अपलोड को स्टोर करता है जिन्हें फ्रेमवर्क को रनटाइम पर लिखने की आवश्यकता होती है।
- प्रणाली/ – अभी भी फ्रेमवर्क कोर को बरकरार रखता है, जिसे नेम्डस्पेस के अंतर्गत रखा गया है। Codeइग्नाइटर।
- विक्रेता / – कंपोजर पैकेज, जिनकी भूमिका CI 3 के समान है।
// CodeIgniter 4 root layout project-root/ ├── app/ ├── public/ ├── writable/ ├── system/ ├── vendor/ ├── tests/ ├── composer.json ├── env └── spark
यदि आप आज कोई नया प्रोजेक्ट शुरू कर रहे हैं, CodeIgniter 4 अनुशंसित संस्करण है। यदि आप पुराने कोडबेस का रखरखाव कर रहे हैं, तो ऊपर वर्णित CI 3 संरचना डिस्क पर दिखाई देने वाली संरचना से मेल खाएगी।
साथ काम करना Codeइग्नाइटर संरचना दिन-प्रतिदिन
एक बार जब आपको पता चल जाए कि प्रत्येक फ़ोल्डर कहाँ स्थित है, तो सामान्य कार्य आसान हो जाते हैं। application/controllers/ (या CI 4 में app/Controllers/) के अंतर्गत एक नया कंट्रोलर बनाएँ, इसे config/routes.php में एक रूट से मिलाएँ, models/ के अंतर्गत एक मॉडल बनाएँ, और views/ में एक व्यू फ़ाइल से आउटपुट रेंडर करें। कॉन्फ़िगरेशन को config/ में रखें, पुनः उपयोग योग्य कोड को helpers/ या libraries/ में डालें, और vendor/ के अंदर सब कुछ कंपोज़र को प्रबंधित करने दें। इस नियम का पालन करें और आपका प्रोजेक्ट बढ़ने पर भी आसानी से नेविगेट करने योग्य बना रहेगा।
