CodeIgniter 3 Tutorial के इस series में आज हम CodeIgniter 3 folder structure that means directory structure of CodeIgniter के बारे में पढेंगे| पिछले tutorial में हमने CodeIgniter के बारे में पढ़ा था जिसमें हमने ये जानने की कोशिश की थी की CodeIgniter क्या होता है और इसका इस्तेमाल क्यों किया जाता है?
अगर आप CodeIgniter सीखना चाहते हैं तो आपको सबसे पहले उसके structure के बारे में सीखना होगा| जिस प्रकार हमें घर बनने के लिए Plot (जमीन) का investigation करना पड़ता है that means हमें घर बनाने से पहले जमीन देखकर के ये अंदाजा लगाना होता है की काम कहा से start करना है और कहाँ पर खत्म करना है| ठीक उसी तरह जब हम किसी भी framework में या किसी भी programming language में application develop करते हैं तो सबसे पहले हमें ये जान लेना चाहिए की वो framework या वो programming language किस प्रकार से काम करती है|
तो आज के इस tutorial में हम CodeIgniter 3 के folder structure that means directory structure के बारे में सीखेंगे इससे पहले हम MVC framework के workflow को भी जानेंगे| Let’s start to learn CodeIgniter 3 folder structure
CodeIgniter 3 Folder structure – Directory structure of CodeIgniter 3 in Hindi
CodeIgniter एक MVC framework है जो की MVC pattern पर काम करता है| इसके folder structure को जानने से पहले MVC pattern के structure के बारे में जान लेते हैं|
MVC framework workflow
MVC का full form “Model View Controller” होता है| जिसमें model का काम database related work करने के लिए किया जाता है वहीँ Controller का काम user के input request को accept करके model के help से business logic या business calculation perform करने के बाद वापस user (View) के पास response send करने के लिए किया जाता है और View का काम user को output दिखाने के लिए किया जाता है|
MVC structure में सबसे पहले user अपने browser के द्वारा Controller को access करता है जहाँ से Controller सारे logical calculation करके View पर data को भेजता है और View से user को browser में response मिलता है|
जब हमें database work perform करना होता है तो Controller सबसे पहले Model से interact करता है that means Model को request भेजता है जहाँ पर Model database से interact करके वहां पर दिए गए direction के अनुसार query को execute करता है और data को fetch(लाना) करता है और फिर वह controller को response भेजता है और उसके बाद Controller अपने स्तर पर दिए गए logical calculation को perform करके view को response देता है और View user को response display कराता है|
Model का काम database से interact करके query को execute करने का होता है जहाँ पर developer database से related सारे queries को लिखते हैं|
View का काम user को information display करने का होता है| दूसरे शब्दों में हम यह कह सकते हैं की view एक information होता है जो की user को display होता है| View में हम सबसे कम business logic code को लिखने की कोशिश करते हैं क्योंकि View केवल user को information display करने के लिए बनाया गया है ना की business logic perform करने के लिए| इसमें हमारे जितने भी HTML, CSS, JavaScript के code होते हैं उन्हें हम लिखते हैं|
Controller का main काम Model और view को एक दूसरे से connect करने के लिए होता है that means controller एक प्रकार का inter-mediator होता है जो की view के request information को model तक पहुंचाता है और model के response information को view तक पहुँचाता है| इसके अलावा जितने भी प्रकार के business logic performs करने होते हैं वो सारे business logic हम controller में perform करते हैं| कई सारे लोग business logic perform करने के लिए अलग से class बना लेते हैं और controller में केवल user का इनपुट accept करना, input validate करना और response करना का code केवल रखते हैं|
Note: यहाँ पर मैंने Model और View को भी एक दूसरे से connect किया है क्योंकि बहुत सारे नए developer view से ही model को कॉल कर देते हैं और वहां से भी model call हो जाता है इसलिए मैंने View और Model दोनों को एक दूसरे से connect किया है| लेकिन यह सही तरीका नहीं है|
CodeIgniter 3 folder structure in Hindi
CodeIgniter के folder structure बहुत ही simple होते हैं इसलिए इसे सीखना भी easy होता है| इसमें generally तीन folder बने होते हैं उसके अन्दर बहुत सारे sub-folders बने होते हैं|
इसमें application, system और user_guide folder होते हैं लेकिन user को web application develop करने के लिए केवल application folder में काम करना होता है इसके अलावा system folder में CodeIgniter के internal structure होता है जो की उसके workflow को manage करता है और system folder के अन्दर बहुत सारे pre-defined functions और libraries होते हैं जो की CodeIgniter के द्वारा provide किये जाते हैं ये functions user के काम को आसान करते हैं| User Guide folder के अन्दर CodeIgniter 3 का user guide होता है जिससे user कभी भी help ले सकता है|
चलिए अब एक एक करके सभी folders को details में जानते हैं|
Application
जैसा की नाम से ही पता चल रहा है की आपका जो भी web application बनेगा वो Application folder के अन्दर होगा|आप CodeIgniter 3 में project बनाते समय जितने भी code लिखेंगे वो Application folder के अन्दर दिए गए अलग अलग प्रकार के sub-folder में लिखना होगा| इसके अन्दर बहुत सारे sub-folders होते हैं उनको एक एक करके हम सीखने की कोशिश करते हैं|
cache: इस folder के अन्दर आपके application के cached pages होते हैं जो की आपके project के speed को बढाते (increase) हैं|
config: इस folder के अन्दर बहुत सारे files होते हैं जिनका इस्तेमाल application configuration करने के लिए किया जाता है that means application में settings करने के लिए किया जाता है जैसे इसके अन्दर autoload.php file होता है जिसका इस्तेमाल file को automatic load करने के लिए किया जाता है| दूसरा database.php होता है जिसका इस्तेमाल database connectivity के लिए किया जाता है|
controllers: इस folder के अन्दर आपके सारे controller file होते हैं जिसके द्वारा हम model और view को control करते हैं और business logic को perform करते हैं| यह आपके application का basic part होता है|
core: इस folder के अंदर base class को store किया जाता है that means इसके अन्दर वैसे class files store होते हैं जिसे हम directly अपने controller के class file में extend कर सकते हैं| अगर हम इस folder के अन्दर एक class ABC बनाते हैं और उसको अपने controller के XYZ class में कुछ इस प्रकार extend करते हैं|
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class XYZ extends ABC
{
}
इस folder में हम वैसे class files बनाते हैं जो सभी controller के लिए common हो|
helpers: जैसा की नाम से ही पता चल रहा है की यह दूसरे को help करने के लिए बने होंगे| helpers folder के अन्दर हम बिना class के कोई भी function बनाकर के उसे अपने controller, view, etc. में access कर सकते हैं| इसमें generally वैसे function बनाये जाते हैं जो common उपयोग हो जैसे की sms_helper जिसका काम SMS send करना होगा|
hooks: इस folders के अन्दर वैसे files store होते हैं जिनका काम CodeIgniter के internal structure के functionality को change करना होता है that means इसमें हम वैसे files को रखते हैं जो की CodeIgniter के system files/core files को बिना change किये उसके functionality को change करने के लिए किया जाता है|
language: इस folder के अन्दर language related files को store करने के लिए किया जाता है| जब हम किसी ऐसे project पर काम कर रहे होते हैं जो की English language से हटकर के होता है तो हमें उसके लिए language files का इस्तेमाल करना होता है और उन सभी language files को हमें language folder के अन्दर रखना होता है|
libraries: इस folder के अन्दर वैसे class files को रखते हैं जो की हमारे application को जल्दी develop करने के लिए इस्तेमाल किये जाते हैं जैसे एक college के पुस्तकालय (library) में बहुत सारे पुस्तक(books) रखे होते हैं और वहां पर केवल उसी कॉलेज के छात्र और छात्राएं जाकर के कोई भी पुस्तक पढ़ सकते हैं ठीक उसी प्रकार हमारे application में भी हम कुछ ऐसे class files बना कर के रखते हैं जिनका इस्तेमाल application में कहीं पर भी किया जा सकता है तो उन सभी files को libraries folder के अन्दर रखते हैं|
logs: इस folder के अन्दर log related that means error related files को रखा जाता है |
models: इस folder के अन्दर वैसे class files store होते हैं जो की database से data perform करने का काम करते हैं|
third_party: इस folder के अन्दर third party files और folders को रखा जाता है जैसे मान लीजिये आपको एक payment gateway integrate करना है तो उसके लिए आपको third party code जो की payment gateway के द्वारा provide किया गया है उनको रखना पड़ता है| तो ऐसे files जो हमारे project में data किसी दूसरे site से ला रहे हैं उन्हें third_party folder के अन्दर रखा जाता है|
views: Application में use हो रहे HTML, CSS, JavaScript के code इस folder के अन्दर लिखते हैं जो की user को display होता है|
System
इस folder के अन्दर CodeIgniter framework के वे सारे files store होते हैं जिनका काम CodeIgniter के workflow को बताना होता है| इस folder के अन्दर वैसे सभी files store होते हैं जो की framework के द्वारा pre-defined provider किये गए होते हैं जैसे की library, helper, controller, etc.
User Guide
इस folder के अन्दर user guide available होते हैं जिनका project से कोई लेना देना नहीं होता है| ये folders और files सिर्फ इसलिए दिए गए होते हैं की जब भी कोई project पर offline work करे और उसको guide की जरुरत पड़े तो offline guide को पढ़ सके| आप project के size को कम करने के लिए इस folder को डिलीट कर सकते हैं|
इन सभी के अलावा एक index.php file होता है जहाँ application configuration set रहते हैं इस file को बिना complete knowledge के change ना करें| जब आप CodeIgniter सीख रहे होते हैं या फिर project बना लिए होते हैं तो भी इसमें आपको कोई भी changement नहीं करना होता है लेकिन अगर आपको इस files के बारे में पूरा knowledge है तो आप इसको change करके अपने अनुसार customize कर सकते हैं| लेकिन हमारा यही suggestion रहेगा की आप इस file को कभी change ना करें|
Video Tutorial
Read Also:
- CodeIgniter 3 में Ajax का इस्तेमाल करके database में data कैसे insert करें?
- CodeIgniter 3 में Ajax का इस्तेमाल करके Database से data कैसे डिलीट करें?
- CodeIgniter 3 में Ajax का इस्तेमाल करके database में data को कैसे update करें?
- CodeIgniter 3 में Ajax का इस्तेमाल करके database से data को कैसे fetch करें?
- CodeIgniter 3 में Ajax का इस्तेमाल करके image कैसे upload करें?
Leave a Reply