2009-03-27 26 views
5

यह समझने का सबसे अच्छा तरीका क्या है कि फ्रेमवर्क कैसे लिखा गया था और क्यों?फ्रेमवर्क को समझना

+0

में अनुरोध से प्रतिक्रिया के लिए क्या होता है मैं ढांचे की आपकी परिभाषा से सहमत नहीं हूं। यह मेरा विश्वास है कि आप फ्रेमवर्क कोड के एक टुकड़े को लिखने या किसी भी अमूर्तता के बिना एक तार्किक ढांचा बना सकते हैं। Templating? यह ढांचा का काम नहीं है। –

+0

शायद, लेकिन इस चर्चा के लिए हम मान सकते हैं: http://en.wikipedia.org/wiki/Software_framework http://en.wikipedia.org/wiki/Web_application_framework – GeekJock

उत्तर

14

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

एक बग फिक्स करने से वास्तव में आपको कोड समझने में मदद मिलेगी, क्योंकि अधिकांश समय आपको उदाहरण कोड का एक टुकड़ा दिया जाता है जो इसे पुन: प्रयास करता है, जिसे आप नरक के आंतों में खोज सकते हैं ताकि यह पता चल सके कि चीज़ें कहां गलत हैं।

यह सब दृढ़ता है, वास्तव में।

+0

तो बग ट्रैकर पर जाएं, चुनें एक दिलचस्प एक, और इससे निपटने? – GeekJock

+0

हाँ, यह इसके बारे में लंबा और छोटा है। –

6

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

1

आप सही रास्ते पर हैं। बस याद रखें कि रोम एक दिन में नहीं बनाया गया था। हर घर ईंट द्वारा ईंट की लंबी अवधि में बनाया जाता है।

ढांचे का उपयोग करके, आप इसकी कुछ कमियों को खोज लेंगे और कुछ कार्यक्षमता ढूंढने में सक्षम होंगे जो अनुपलब्ध हैं या सुधार की आवश्यकता है।

वहां से शुरू करें, सुधार विकसित करें और सहकर्मी समीक्षा के लिए ढांचे के समुदाय को सबमिट करें। यहां तक ​​कि यदि वे आपके काम को ढांचे में शामिल न करने का निर्णय लेते हैं, तो भी आपको अपने काम पर बहुत मूल्यवान प्रतिक्रिया प्राप्त होगी।

वहां मत रुकें, जो आपने दूसरे प्रयास के लिए अपने पहले प्रयास में सीखा है (और तीसरा, चौथा, पांचवां ...) इस तरह आप समझना सीखेंगे कि दूसरों को ढांचे से क्या उम्मीद है (जो हो सकता है अपनी अपेक्षा से बहुत अलग है), और धीरे-धीरे एचटी ढांचे के आंतरिक कार्यों को समझते हैं।

निष्कर्ष: धैर्य रखें और दृढ़ रहें। समझ का पालन करेंगे। (गूढ़ लगता है, मुझे पता है। लेकिन यह काम कर सकता है!)

2

मुझे पता है कि दुनिया को एक और की जरूरत है जैसे इसे सिर में एक छेद की जरूरत है, लेकिन अपना खुद का ढांचा लिखना एक भाषा सीखने का एक शानदार तरीका है। मैंने एक पखवाड़े के तहत PHP में काफी पूर्ण लिखा और प्रक्रिया में PHP और वेब विकास के बारे में बहुत कुछ पता चला।

एकमात्र कारण मैंने इसे जारी नहीं किया है क्योंकि मैं अंततः सत्र स्थिति प्रबंधित करने के तरीके से खुश नहीं था, लेकिन यह भी एक अच्छा सीखने का अनुभव था!

मुझे लगता है कि ढांचा डिजाइन शुरू करने का तरीका इसके लिए लगभग 5 मूल उद्देश्य लिखना है।मेरा के लिए, ये थे:

  • एक दर्जन के साथ सरल वेब एप्लिकेशन का निर्माण करने के उद्देश्य से या
  • एसक्यूएल
  • का अच्छा ज्ञान नहीं प्रक्रियात्मक कोड PHP या अन्यथा (कि में के अलावा के साथ लोगों के उद्देश्य से तो रूपों एसक्यूएल एसपीएस)
  • कोई HTML/जावास्क्रिप्ट/सीएसएस प्रोग्रामिंग की जरूरत
  • आवेदन एक्सएमएल में वर्णित
  • एक वेनिला पीएचपी पर काम/अपाचे ढेर
  • कोई राज्य मा सर्वर पर चेहरे

यह मुझे शुरू करने के लिए पर्याप्त था।

दूसरा सुझाव है कि मैं फ्रेमवर्क का उपयोग कर एक ऐप बनाने की कोशिश कर रहा हूं, जैसे ही आप ढांचे का निर्माण करते हैं। यह जल्दी से समस्याओं को प्रकट करेगा और नई दिशाओं abd सुविधाओं के लिए विचारों का सुझाव देगा।

1

ऐसी कई चीजें हैं जिनमें अधिकांश ढांचे में शामिल हैं, हालांकि परिभाषा अस्पष्ट है।

  • एक बुनियादी bootstrapper प्रदान करें (सेटिंग्स, सेटअप पर्यावरण प्रबंधन, पीएचपी संस्करणों के बीच संगतता मुद्दों, आदि के लिए जाँच)
  • यूआरएल रूटिंग - कैसे नियमों को परिभाषित करने किन URL बात करने के लिए जो पृष्ठों के लिए।
  • प्लग-इन, पुस्तकालयों, मॉड्यूल, आदि
  • डाटाबेस ORM प्रबंधित करें - बजाय एसक्यूएल प्रश्नों लिखने की वस्तुओं में हेरफेर (सरलीकृत)
  • Templating - आमतौर पर टेम्पलेट तर्क के लिए एक मिनी भाषा बनाने शामिल है (लूप, सशर्त) टेम्पलेट में PHP कोड होने से बचने के लिए।

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

मैं को देखने के लिए दो व्यवस्थाएं की सिफारिश करेंगे:

  1. Codeigniter

    मेरा सुझाव यह है क्योंकि यह एक "बैटरी शामिल" रूपरेखा है कि बॉक्स से बाहर काम करता है। इसमें एक महान समुदाय भी है, जो कि तीसरे पक्ष के पुस्तकालयों के बहुत सारे हैं। सीआईआई में PHP4 और PHP5 दोनों के साथ अच्छा खेलने के लिए ढांचे को पाने के लिए कुछ चाल है, जो जानना भी अच्छा है (क्योंकि, किसी कारण से, बहुत से लोग अभी भी PHP5 का उपयोग करते हैं)। आपको KohanaPHP पर भी एक नज़र डालना चाहिए, जो कोडइग्निटर की एक शाखा है जिसे सख्त PHP5 ढांचे के रूप में पुनः लिखा गया है।

  2. Zend Framework

    Zend एक मॉड्यूल आधारित रूपरेखा है। निर्देशिका में सबकुछ छोड़ने और पृष्ठों को मंथन करने के बजाय, आप अपने इच्छित हिस्सों को चुनते हैं और उन्हें स्वयं एक साथ चिपकाते हैं। चूंकि ज़ेंड को PHP के पीछे इंजन के पीछे लोगों द्वारा बनाया गया है (अभी तक उलझन में है?) यह PHP5 के "नवीनतम और महानतम" का उपयोग करता है - सब कुछ ऑब्जेक्ट-ओरिएंटेड है और यह टाइप संकेत का उपयोग करता है। बहुत साफ कोड, अगर थोड़ा verbose।

मुझे लगता है कि आवश्यक सामान bootstrapper (ढांचे के लिए "गोंद"), और साथ ही कैसे प्रत्येक ढांचा एक प्रणाली उपयोगकर्ता द्वारा निर्मित ऐसे पुस्तकालयों का समर्थन और प्लग-इन करने के लिए लागू करता है। शेष आप कहीं और स्टैंड-अलोन अनुप्रयोगों के रूप में पा सकते हैं।

3

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

+0

मुझे नहीं पता कि मैं जरूरी रूप से अपना खुद का ढांचा लिखना चाहता हूं ... हालांकि ऐसा लगता है कि मुझे ऐसा करने में बहुत अधिक अनुभव मिलेगा। – GeekJock

+0

ओह। मैं दूसरे उत्तरों में पकड़ा गया और भूल गया कि आपका इरादा नहीं था: पी वैसे भी, यह आपको एक अच्छा विचार देगा जहां इनमें से कुछ ढांचे किसी भी तरह से आ रहे हैं। मैंने दस्तावेज के माध्यम से पहले पढ़ने के लिए केकपीएचपी के लिए विकास करना शुरू किया, आधे वेबसाइट का निर्माण किया, और फिर महसूस किया ... – mpen

+0

... ढांचे में कुछ अंतराल थे जो मैं अपने कुछ मॉड्यूल से भर सकता था। एक अच्छा ढांचा ऐड-ऑन का समर्थन करेगा (जैसा कि मैंने बताया है) - किसी तृतीय पक्ष ऐड-ऑन को डाउनलोड करने का प्रयास करें और देखें कि वे इसे कैसे एकीकृत करते हैं, फिर यदि आप आवश्यकता महसूस करते हैं तो आप अपना खुद का प्रयास कर सकते हैं। यह थोड़ा कम है ... – mpen

1

आपको एक उच्च स्तर पर, अनुरोध के जीवन चक्र को समझने की कोशिश करनी चाहिए। यहां एक अच्छा उदाहरण है कि ज़ेन फ्रेमवर्क, http://framework.zend.com/manual/en/zend.controller.basics.html

+0

धन्यवाद, यह बहुत अच्छी सलाह है। – GeekJock

+0

कोई समस्या नहीं, यह वास्तव में मेरे लिए क्लिक किया गया है। – mkoga

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