2011-09-22 20 views
17

कोडिनेटर में वेबसाइट के लिए व्यवस्थापक और फ्रंट-एंड को अलग करने का सबसे अच्छा तरीका क्या है, जहां मैं सभी पुस्तकालयों, मॉडलों, हेल्पर्स इत्यादि का उपयोग आम था, लेकिन केवल नियंत्रक और दृश्य होंगे अलग।अलग-अलग व्यवस्थापक और कोडलाइनर में फ्रंट

मैं एक और अधिक उचित तरीके से, ऊपर प्रदर्शन, सरलता, और साझा करने के मॉडल और पुस्तकालयों आदि के लिए चाहते हैं

उत्तर

16

मैं अत्यधिक तरीकों सीआई देव फिल Sturgeon द्वारा इस लेख में रेखांकित पढ़ने का सुझाव:

http://philsturgeon.co.uk/blog/2009/07/Create-an-Admin-panel-with-CodeIgniter

मेरी सलाह: अपनी परियोजना को व्यवस्थित करने के लिए मॉड्यूल का उपयोग करें।

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

सामने और/या बैकएंड के लिए एक base controller बनाएँ। कुछ इस तरह:

// core/MY_Controller.php 
/** 
* Base Controller 
* 
*/ 
class MY_Controller extends CI_Controller { 
         // or MX_Controller if you use HMVC, linked above 
    function __construct() 
    { 
     parent::__construct(); 
     // Load shared resources here or in autoload.php 
    } 
} 

/** 
* Back end Controller 
* 
*/ 
class Admin_Controller extends MY_Controller { 

    function __construct() 
    { 
     parent::__construct(); 
     // Check login, load back end dependencies 
    } 
} 

/** 
* Default Front-end Controller 
* 
*/ 
class Public_Controller extends MY_Controller { 

    function __construct() 
    { 
     parent::__construct(); 
     // Load any front-end only dependencies 
    } 
} 

वापस अंत नियंत्रकों extend Admin_Controller जाएगा, और सामने के छोर नियंत्रकों extend Public_Controller होगा। फ्रंट एंड बेस कंट्रोलर वास्तव में आवश्यक नहीं है, लेकिन एक उदाहरण के रूप में, और उपयोगी हो सकता है। यदि आप चाहें तो MY_Controller का विस्तार कर सकते हैं।

URI routing का उपयोग करें जहां आवश्यक हो, और अपने फ्रंट एंड और बैक एंड के लिए अलग नियंत्रक बनाएं। सभी सहायक, कक्षाएं, मॉडल इत्यादि साझा किए जा सकते हैं यदि फ्रंट और बैक एंड कंट्रोलर दोनों एक ही एप्लिकेशन में रहते हैं।

+0

का उपयोग करके मुझे यह दृष्टिकोण बहुत उपयोगी लगता है, लेकिन मेरे पास एक सवाल है हालांकि मुझे यह नहीं मिला है। आप एक MY_Controller क्यों बनाते हैं? क्या ये ज़रूरी हैं?? क्या होगा अगर Admin_Controller और Public_Controller इसके बजाय CI_Controller का विस्तार करें? क्या यह भी सही होगा ?? – Lykos

+0

बिटबकेट लिंक काम नहीं कर रहा है। –

9

मैं एक बहुत ही सरल दृष्टिकोण का उपयोग करता हूं: फ़ाइल फ़ोल्डर्स। सीआई उपयोगकर्ता गाइड अनुभाग, Organizing Your Controllers into Sub-folders देखें।

मेरे पास सार्वजनिक रूप से सामना करने वाली वेबसाइट है क्योंकि किसी अन्य को कोडइग्निटर के साथ बनाया जाएगा। तब मेरे पास दो अतिरिक्त फ़ोल्डर्स हैं, controllers/admin और views/admin

व्यवस्थापक नियंत्रकों को http: // [hostname]/admin/controller के माध्यम से उपयोग किया जाता है, और उनके पास विशिष्ट प्रमाणीकरण जांच को छोड़कर किसी भी अन्य नियंत्रक के रूप में व्यवहार करते हैं। इसी तरह, विचारों को आसानी से फ़ोल्डर नाम के साथ बुलाया जाता है: $this->load->view('admin/theview');

मुझे इससे कहीं अधिक जटिल करने का कोई कारण नहीं मिला है।

+0

अरे आप "उप-फ़ोल्डर में अपने नियंत्रकों को व्यवस्थित कर रहे हैं।" लिंक काम नहीं कर रहा है क्या आप कृपया मुझे अपडेट कर सकते हैं। –

+2

यह नवीनतम लिंक है http://ellislab.com/codeigniter%20/user-guide/general/controllers.html#subfolders –

+0

धन्यवाद @Pramod। लिंक अपडेट किया गया। –

2

आप सभी यहाँ पर पूर्ण समाधान पा सकते हैं, व्यवस्थापक और सामने के अंत HMVC का उपयोग करने और टेम्पलेट जुदाई

मैं दो तीसरे पक्ष के पुस्तकालयों का उपयोग कर रहा टेम्पलेट लाइब्रेरी का उपयोग कर के लिए https://github.com/bhuban/modular

मॉड्यूल जुदाई, तो आप इसे प्राप्त कर सकते हैं ज़िप फ़ाइल में।

  1. मॉड्यूलर के लिए HMVC फिल Sturgeon द्वारा templating के लिए wiredesignz
  2. खाका इंजन द्वारा विकसित

बस अपने वेब सर्वर रूट निर्देशिका में इसे अनज़िप और

localhost/modular for front-end 

और

localhost/modular/admin for back-end 
चलाने

application/back-modules, यह पीछे के अंत मॉड्यूल

application/front-modules के लिए है, यह सामने के अंत मॉड्यूल

इसी तरह templates/admin बैक-एंड टेम्पलेट्स templates/front सामने के अंत टेम्पलेट्स के लिए के लिए

के लिए है

themes/admin बैक-एंड थीम के लिए themes/front फ्रंट-एंड थीम

मूल कोड में कुछ भी हैक नहीं किया गया है config.php और index.php

+0

यह सटीक है कि मैंने खोज की! लेकिन जब मैं इसे एक्सेस करने का प्रयास करता हूं, तो मुझे एक त्रुटि होती है: आपका डिफ़ॉल्ट नियंत्रक लोड करने में असमर्थ। कृपया सुनिश्चित करें कि आपके Routes.php फ़ाइल में निर्दिष्ट नियंत्रक मान्य है। क्या आपको इसे हल करने का विचार है? धन्यवाद –