6

हे दोस्तों, बस एक छोटा सा सवाल .. (उम्मीद है!)मेरे ढांचे में कितनी निर्देशिका अलग होना चाहिए?

मैं अपने PHP एमवीसी ढांचे के लिए विभिन्न निर्देशिका संरचनाओं का एक समूह की कोशिश कर रहा हूं। ऐसा करने के दौरान, मैंने एक दूसरे से आवेदन के विभिन्न हिस्सों को अलग करने के कुछ कारणों के बारे में सोचा।

उदाहरण के लिए, मान लीजिए कि यह मेरे वर्तमान संरचना है करते हैं:

- index.php 
- private/ 
    - application/ 
     - ... (MVC stuff. Irrelevant I think...) 
    - config/ 
     - config.php 
    - framework/ 
     - bootstrap.php 
     - includes/ 
     - library/ 
      - ... (Framework classes) 
    - libraries/ 
     - Zend/ 
     - PEAR/ 
- public/ 
    - css/ 
    - images/ 

तरह से मैं यह है, मैं, बस /निजी/रूपरेखा/ निर्देशिका ओवरराइट करके ढांचे को अपडेट कर सकते जो नहीं होगा /निजी/कॉन्फ़िगर/, या /निजी/पुस्तकालय/ में तृतीय पक्ष पुस्तकालयों में उपयोगकर्ता की ढांचे विन्यास को प्रभावित करें।

/index.php फ़ाइल लगभग पूरी तरह से प्रयोग किया जाता है /private/framework/bootstrap.php फ़ाइल है, जो /निजी/रूपरेखा/ निर्देशिका को अद्यतन करने का मतलब होगा लोड करने के लिए भी मुख्य बूटस्ट्रैपिंग अद्यतन करेगा फ़ाइल (/index.php फ़ाइल को अपडेट करने से मुझे सहेजना, जो इस तरह रहेगा, क्योंकि इसमें बहुत कुछ नहीं है)।

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

क्या मैं निर्देशिका को एक दूसरे से अलग करने के संबंध में सही रास्ते पर हूं ताकि उन्हें अपडेट करना आसान हो सके?

मैं कुछ चौखटे है कि वे में देखा है दोनों अपने /निजी/पुस्तकालयों/ और /निजी/आवेदन/उनके ढांचे निर्देशिका के अंदर निर्देशिका ... लेकिन जैसे कि यह करने के लिए मुश्किल होगा इस मुझे लगता है यदि आवश्यक हो तो ढांचे के एक नए संस्करण को अपडेट करें। या क्या मैं इसके बारे में गलत तरीके से सोच रहा हूं?

यदि आप रुचि रखते हैं तो आप मेरी पिछली डीआईआर संरचना here देख सकते हैं। मेरा नया एक छोटा सा है (उम्मीद है कि बेहतर ...), जैसा कि मेरा सवाल है, इसलिए मैंने सोचा कि यह एक नए प्रश्न की पोस्टिंग की जरुरत है।

यह एक प्रश्न के छोटे से नहीं है जैसा कि मैंने आशा की थी, लेकिन आह! ;)

अग्रिम धन्यवाद =)

उत्तर

2

मैं आवेदन कोड से ढांचे कोड को अलग करने का सुझाव देते हैं। ढांचा एक शीर्ष-स्तर निर्देशिका और एक अलग के तहत आवेदन के तहत होना चाहिए।

असल में ... मेरा सुझाव है कि आप केकेपीएचपी द्वारा उपयोग की जाने वाली निर्देशिका संरचना देखें।

+0

दरअसल, केक उन ढांचे में से एक है जो मैं हाल ही में पढ़ रहा हूं। क्या आपका मतलब है कि उपरोक्त मेरे डीआईआर संरचना से केक की समान मात्रा में अलगाव नहीं दिखता है? 'मुख्य /' डीआईआर के अंदर होने वाली मेरी मुख्य निर्देशिकाओं के अलावा, दो संरचनाएं वास्तव में मेरे समान दिखती हैं। इसके अलावा, उनकी संरचना में 'केक/कॉन्फ़िगर /' निर्देशिका है, जिसका अर्थ यह होगा कि यदि आपने कभी भी 'केक /' निर्देशिका को अपडेट किया है, तो 'केक/कॉन्फ़िगर /' ओवरराइट किया जाएगा .. सही? लेकिन मुझे लगता है कि केक को ज्यादा प्रभावित नहीं करेगा, क्योंकि उस फ़ाइल में केवल एक चर सेट किया जाता है, और ढांचे के अनुसार, उपयोगकर्ता नहीं। – manbeardpig

+0

हां, यही मेरा मतलब है।केक में कॉन्फ़िगरेशन फ़ाइलों के दो सेट हैं, हालांकि। ऐप/कॉन्फ़िगरेशन और केक/कॉन्फ़िगरेशन है। पूर्व अनुप्रयोग विन्यास - डेटाबेस, कैश, लवण, उस तरह की चीजें है। उत्तरार्द्ध में एक संस्करण पहचानकर्ता, निर्देशिका संरचना के लिए कॉन्फ़िगरेशन, और कुछ यूनिकोड हैंडलिंग सामग्री शामिल हैं। एप्लिकेशन कॉन्फ़िगरेशन और फ्रेमवर्क कॉन्फ़िगरेशन के बीच अंतर की दुनिया है। मुझे लगता है कि 'फ्रेमवर्क' और 'एप्लिकेशन' 'एप्लिकेशन' के तहत कहीं 'सार्वजनिक' के साथ शीर्ष-स्तरीय निर्देशिका होना चाहिए। यह फ्रेमवर्क कोड और ऐप कोड के बीच बेहतर अलगाव लागू करता है। – Kalium

+0

मुझे यह महसूस हुआ कि यह मामला था, क्योंकि केक/कॉन्फ़िगरेशन में परिभाषित एक चर केक संस्करण के लिए था। ठीक है, इसलिए यदि मैंने जो किया है, मैंने किया है, और 'सार्वजनिक /' 'एप्लिकेशन /' के तहत रखा गया है, तो क्या मैं सीएसएस/जेएस/आईएमजी फाइलों को रूट करने के लिए सभी सीएसएस/जेएस/आईएमजी फाइलों, या एचटीएसीएएस को प्रस्तुत करने के लिए अपने ढांचे का उपयोग करूंगा।/आवेदन/सार्वजनिक/निर्देशिका? – manbeardpig

संबंधित मुद्दे