Codeइग्नाइटर फ़ोल्डर, फ़ाइल और निर्देशिका संरचना

⚡ स्मार्ट सारांश

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

  • 📁 एप्लिकेशन फ़ोल्डर: इसमें आपके कंट्रोलर, मॉडल, व्यू, कॉन्फ़िग, कैश, हेल्पर, हुक, भाषा, लाइब्रेरी, लॉग और थर्ड-पार्टी पैकेज शामिल हैं।
  • 🧩 सिस्टम फ़ोल्डर: इसमें फ्रेमवर्क कोर, डेटाबेस ड्राइवर, फॉन्ट, हेल्पर, भाषा और बिल्ट-इन लाइब्रेरीज़ संग्रहीत हैं; इन फ़ाइलों को सीधे संपादित न करें।
  • ⚙️ प्रवेश बिंदु: रूट index.php फ़ाइल फ्रेमवर्क को बूट करती है, पाथ सेट करती है और प्रत्येक HTTP अनुरोध को फ्रंट कंट्रोलर के माध्यम से रूट करती है।
  • संस्करणों में अंतर: CodeIgniter 3 application/ और system/ का उपयोग करता है, जबकि CodeIgniter 4 में सख्त पृथक्करण के लिए app/, public/ और writable/ फोल्डर पेश किए गए हैं।
  • 🧪 विक्रेता एवं उपयोगकर्ता मार्गदर्शिका: वेंडर आपके द्वारा डिप्लॉय किए जाने वाले कंपोज़र पैकेज को स्टोर करता है, जबकि यूजर_गाइड स्थानीय दस्तावेज़ है जिसे आपको प्रोडक्शन सर्वर से बाहर रखना चाहिए।

Codeइग्नाइटर फ़ोल्डर

फ़ाइल संरचना को समझना Codeकिसी भी वास्तविक एप्लिकेशन को बनाने से पहले इग्नाइटर का ज्ञान अनिवार्य है। एक सुनियोजित लेआउट आपको कंट्रोलर, मॉडल और व्यू को जल्दी से ढूंढने, रूटिंग संबंधी समस्याओं को डीबग करने और नए टीम सदस्यों को तेजी से शामिल करने में मदद करता है। यह ट्यूटोरियल क्लासिक इग्नाइटर के बारे में जानकारी देता है। Codeयह लेख Igniter 3 की संरचना के बारे में है जो अभी भी व्यापक रूप से उपयोग में है, और साथ ही उन प्रमुख अंतरों को भी स्पष्ट करता है जिनका सामना आपको इसमें करना पड़ेगा। CodeIgniter 4.x, जो app/, public/, और writable/ को अलग-अलग शीर्ष-स्तरीय फ़ोल्डरों के रूप में पेश करता है।

क्या है CodeIgniter फ़ाइल और डायरेक्टरी संरचना?

RSI CodeIgniter फ़ाइल संरचना, फ़ोल्डरों और PHP फ़ाइलों की डिफ़ॉल्ट व्यवस्था है जो फ़्रेमवर्क डाउनलोड या इंस्टॉल करने के बाद इसके साथ आती है। यह आपके एप्लिकेशन लॉजिक को फ़्रेमवर्क कोर से अलग करती है, कंपोज़र निर्भरताओं को पृथक रखती है, और index.php के माध्यम से एक एकल प्रवेश बिंदु प्रदान करती है। निम्नलिखित छवि फ़ाइल संरचना को दर्शाती है। Codeइग्नाइटर:

Codeइग्नाइटर फ़ाइल/फ़ोल्डर/निर्देशिका संरचना
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/ के अंदर सब कुछ कंपोज़र को प्रबंधित करने दें। इस नियम का पालन करें और आपका प्रोजेक्ट बढ़ने पर भी आसानी से नेविगेट करने योग्य बना रहेगा।

अक्सर पूछे जाने वाले प्रश्न

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

In CodeIgniter 4 में, आप PSR-4 नेमस्पेस का उपयोग करके नए कंट्रोलर को app/Controllers/ फ़ोल्डर में रखते हैं। फ़ाइल नाम को क्लास नाम से मिलाएं, फिर app/Config/Routes.php में एक रूट रजिस्टर करें ताकि फ्रेमवर्क उस पर अनुरोध भेज सके।

नहीं। user_guide फ़ोल्डर केवल स्थानीय दस्तावेज़ है। इसे उत्पादन तैनाती से बाहर रखें ताकि जगह कम लगे और लाइव सर्वर पर फ्रेमवर्क संदर्भ सामग्री प्रदर्शित होने से बचा जा सके। इसके विपरीत, विक्रेता और सिस्टम फ़ोल्डर को तैनात करना आवश्यक है।

index.php फ़ाइल फ्रंट कंट्रोलर है। यह वातावरण सेट करता है, पथ स्थिरांक परिभाषित करता है, और फ्रेमवर्क बूटस्ट्रैप लोड करता है ताकि प्रत्येक आने वाला अनुरोध इसके माध्यम से रूट किया जा सके। Codeआपके कंट्रोलर और व्यू तक पहुंचने से पहले इग्नाइटर पाइपलाइन।

जी हां। GitHub Copilot, Cursor और Claude जैसे AI टूल कंट्रोलर, मॉडल और व्यू को सही फ़ोल्डरों में व्यवस्थित कर सकते हैं, अपरिचित फ़ाइलों की व्याख्या कर सकते हैं और गलत जगह पर मौजूद क्लास को चिह्नित कर सकते हैं। ये टूल तब विशेष रूप से उपयोगी होते हैं जब आप एक फ़ोल्डर से दूसरे फ़ोल्डर में स्विच करते हैं। Codeइग्निटर 3 और Codeइग्निटर 4 लेआउट।

एआई सहायक बताते हैं कि नियंत्रक अनुरोधों को कैसे संभालते हैं, मॉडल डेटा को कैसे प्रबंधित करते हैं और व्यू आउटपुट कैसे प्रस्तुत करते हैं, फिर वे सही फ़ोल्डरों में मिलान वाली फ़ाइलें बनाते हैं। वे आपके कोड की समीक्षा भी कर सकते हैं, सुधार के सुझाव दे सकते हैं और वास्तविक कोड बनाते समय एमवीसी पृथक्करण को सुदृढ़ कर सकते हैं। Codeइग्नाइटर परियोजनाएं।

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