चतुर PHP अनुप्रयोग संगठन संरचनाएँ?


10

एक मिलियन-और-एक फ़ाइल-सिस्टम संरचनाएं हैं जो ओपन सोर्स परियोजनाओं के असंख्य में उपलब्ध हैं। मॉड्यूल, भाषा फाइलें, डोमेन, थर्ड-पार्टी लाइब्रेरी, माइग्रेशन, अंतर्राष्ट्रीयकरण, बैकअप, और सिस्टम के अन्य भागों में syslinks जैसी चीजों ने किसी प्रोजेक्ट के फाइल सिस्टम को व्यवस्थित करने के लिए कई दृष्टिकोणों को जन्म दिया है।

एक PHP डेवलपर के रूप में मैं सोच रहा हूं कि क्या परियोजनाओं के बीच किसी भी प्रकार का मानकीकरण उभरने लगा है। PSR-0 के साथ अंत में हमारे पास फ़ाइलों के नामकरण और लोड करने के लिए एक मानक है - लेकिन यह बाकी घटकों के बारे में मेरी जानकारी के लिए कुछ भी नहीं है जो सिस्टम बनाते हैं या कैसे वे एक समझदार तरीके से संभाले जा सकते हैं।

हम एमवीसी की तुलना में बहुत अधिक काम कर रहे हैं, इसलिए इन सभी चीजों को सही ढंग से संभालने वाली बड़ी परियोजनाओं के क्या उदाहरण हैं?


3
एक साथी PHP डेवलपर के रूप में, मुझे PHP घटकों से
ऊंट की

2
@CamelBlues मौका की शुद्ध बाधाओं के आधार पर, कुछ PHP डेवलपर को अंततः गड़बड़ करने और कुछ सही करने के लिए मिला है।
Xeoncross 21

मैंने अभी तक मानकीकरण के रूप में ज्यादा नहीं देखा है। पिछले कुछ वर्षों तक आपके सामने सामने की चीज़ों (js, css) के लिए आपके फ़ोल्डर होंगे और तब आपके पास या लिबास और फिर टेम्प्लेट या थीम शामिल होंगे और वह यह था। हाल ही में एमवीसी फ्रेमवर्क लोकप्रियता प्राप्त करने के साथ यह सब स्पष्ट नहीं है। मैं कहूंगा कि अभी के लिए एक मानक का उपयोग करने के बारे में चिंता न करें और केवल यह स्पष्ट रखें कि आपके विशेष एप्लिकेशन में क्या जाता है।
जेसन

जवाबों:


3

यह वास्तव में मानकीकृत करना संभव नहीं है कि परियोजनाओं को कैसे निर्धारित किया जाना चाहिए, क्योंकि "यह निर्भर करता है"।

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

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


एक पूरे के रूप में मैं आपसे सहमत हूं, यह निश्चित रूप से एक वैध बिंदु है। हालाँकि, यदि आप भाषा के बाहर की चीजों को हटाते हैं (बैकअप फ़ोल्डर, क्रोन / बिल्ड स्क्रिप्ट, स्थिर संपत्ति, आदि ..) और बस भाषा पर ही ध्यान केंद्रित करते हैं - मेरा मानना ​​है कि एक ही तर्क नहीं किया जा सकता है। भाषाओं में पहले से ही सीमाएँ हैं। यह पता लगाना कि आपके सभी वर्गों और कोडब्लॉक की व्यवस्था कैसे की जाए, ताकि वे समझ सकें कि हर परियोजना एक वास्तविक और प्राप्य लक्ष्य है।
Xeoncross

0

वहाँ एक मानकीकरण प्रयास का बहुत कुछ नहीं हो रहा है, और ईमानदार होने के लिए, मुझे इसका लाभ नहीं दिखता है। केवल एक नियम है जिसका आपको पालन करना चाहिए, जो यह है कि आपको कभी भी डोकरो के तहत चीजें नहीं होनी चाहिए जो वहां नहीं हैं (एक बुनियादी सुरक्षा एहतियात)।

इसके अलावा, मैं सिर्फ इस परियोजना के लिए क्या समझ में आता हूँ।

यदि आप MVC का उपयोग कर रहे हैं (या तो किसी ढांचे या तदर्थ के माध्यम से), तो / मॉडल, / दृश्य और / नियंत्रक के साथ एक आधार संरचना समझ में आता है। लेकिन भले ही आप नहीं हैं, आपके पास आमतौर पर कक्षाओं के साथ कुछ डेटा एक्सेस लेयर होती है जो आपके डेटा एंटिटीज़ के लिए मैप करती है; यह उन लोगों के लिए एक निर्देशिका के लिए समझ में आता है; आपके पास आमतौर पर व्यावसायिक तर्क वर्गों और उपयोगिता कार्यों का एक समूह है, इसलिए उन लोगों के लिए एक और निर्देशिका; यदि आप एक टेम्पलेट सिस्टम का उपयोग करते हैं, तो टेम्प्लेट दूसरी डायरेक्टरी में जाते हैं; और फिर आप शायद 'लाइब्रेरीज़' डायरेक्टरी चाहते हैं, जहाँ आप सभी थर्ड-पार्टी लाइब्रेरियाँ रखते हैं। (एक बार जब आप इस बिंदु पर पहुँच जाते हैं, तो आप वैसे भी MVC कर रहे हैं)।

यदि परियोजना वास्तव में बड़ी है, तो इसे संभवतः कार्यात्मक सबमॉड्यूल्स में विभाजित किया जा सकता है; यदि सबमॉडल्स काफी स्वतंत्र हैं, तो यह सामान्य कोड के लिए एक अतिरिक्त निर्देशिका के साथ, आपके शीर्ष-स्तर के रूप में उपयोग करने के लिए समझ में आता है।


0

आप दो सबसे लोकप्रिय एप्लिकेशन फ्रेमवर्क के लिए प्रोजेक्ट लेआउट का अनुसरण कर सकते हैं:

  1. Zend फ्रेमवर्क - http://www.framework.zend.com/manual/en/project-structure.project.html
  2. सिम्फनी - http://symfony.com/doc/current/book/installation.html

ये उपयोगकर्ताओं से सर्वोत्तम प्रथाओं और अनुभवों के आधार पर एक एक्स्टेंसिबल संरचना प्रदान करेंगे

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.