किस ओपन सोर्स PHP प्रोजेक्ट में 'परफेक्ट' OOP डिज़ाइन है जिससे मैं सीख सकता हूं? [बन्द है]


9

मैं OOP के लिए नौसिखिया हूं, और मैं उदाहरण के साथ सबसे अच्छा सीखता हूं।

आप यह कह सकते हैं कि यह प्रश्न किस स्केला ओपन सोर्स प्रोजेक्ट्स के समान है, मुझे सबसे अच्छा कोडिंग अभ्यास सीखने के लिए अध्ययन करना चाहिए - लेकिन PHP में।

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

मैंने Zend के कोडबेस को लाइक और लाइक करने वाले वेब पेजों की समान संख्या देखी है (यदि आवश्यक समझे तो लिंक उपलब्ध कराएंगे)।

क्या आप किसी अन्य परियोजना के बारे में जानते हैं जो किसी भी अनुभवी ओओपी डेवलपर को खुशी के आँसू बहाएगी?

कृपया मुझे यह जोड़ने दें कि व्यावहारिकता और उपयोग की गुंजाइश यहाँ बिल्कुल भी चिंता का विषय नहीं है - मैं बस यही करना चाहता हूँ:

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

मूल रूप से, एक शैक्षणिक ब्याज कोडबेस। किसी भी सिफारिश कृपया?


4
मैं विशेषज्ञ नहीं हूं, लेकिन मुझे नहीं लगता कि OOP PHP में आम है या जरूरी है।
asfallows

3
@asfallows वास्तव में ऐसा ही था - लेकिन PHP 5.3 की रिलीज के साथ, चीजें बदल रही हैं और सभी स्पैंकिंग नई सुविधाओं का उपयोग करने की दिशा में एक निश्चित झुकाव है जो भाषा OOP कोडिंग के लिए प्रदान करती है।
आदित्य एमपी

3
"सही ओओपी डिजाइन" जैसी कोई चीज नहीं है।
रॉबर्ट हार्वे

1
मैं देख रहा हूं कि आप पहले से ही कोड रिव्यू स्टैक एक्सचेंज में सदस्य हैं। इसे बड़े पैमाने पर उपयोग करें, यह सीखने के दौरान सबसे मूल्यवान स्टैक एक्सचेंज है, हम आपको OOP के बारे में सीखते हुए कोड को देखना और चर्चा करना पसंद करेंगे ...
yannis

1
@ अरख हर्ष आइए व्यक्तिगत हमलों से बचने की कोशिश करें। यदि आप असहमति से असहमत हैं, तो एक अच्छी तरह से लिखित टिप्पणी लिखने के लिए समय निकालें।

जवाबों:


2

सिम्फनी 2 शायद सीखने के लिए सबसे अच्छी बड़ी परियोजना है लेकिन बहुत बड़ी है।

मुझे हाल ही में Phrozn (स्टेटिक साइट जनरेटर) नामक एक साफ और छोटा खुला स्रोत PHP प्रोजेक्ट मिला । यह कोड आधार अपेक्षाकृत छोटा है इसलिए आप इसे बहुत तेजी से जांच सकते हैं।

अपडेट करें:

Phrozn आधुनिक है (PHP 5.3+ का उपयोग करता है और इस पर बहुत निर्भर करता है), यह एक्स्टेंसिबल है, इसमें सख्त कोड कवरेज है। यह सिम्फनी (YAML), ज़ेंड (ऑटोलैडर), PEAR और ट्विग जैसी अन्य अच्छी तरह से लिखी गई परियोजनाओं से कोड का फिर से उपयोग करता है।

OOP, नेमस्पेस का उपयोग करता है और यह बहुत अच्छी तरह से प्रलेखित है। मैं यह नहीं कह रहा हूं कि यह बिल्कुल सही है और न ही इसकी तुलना सिम्फनी जैसी परियोजना से की जा सकती है लेकिन यह एक शॉट के लायक है।


1
क्या आप हमें फिरोज के कोडबेस पर कुछ और जानकारी दे सकते हैं? यह इसे आकार के अलावा, अध्ययन के लिए आदर्श क्या बनाता है?
यानिस

1
@YannisRizos :) कोड जीथब पर पाया जा सकता है, इसलिए आप एक त्वरित रूप ले सकते हैं। github.com/farazdagi/phrozn
क्रिश्चियन पी।

17

खैर, व्यक्तिगत रूप से मैं कहूंगा कि सिम्फनी 2 की जांच करें । यह बहुत अच्छा अंत-से-अंत बड़ी परियोजना है जिसे मैंने अभी तक देखा है। यह कहना नहीं है कि इसके लिए बुरे हिस्से नहीं हैं, लेकिन एक पूरे के रूप में, यह बहुत अच्छा है।

अब, Zend बीच में है। यदि आप सार्वजनिक एपीआई को देखते हैं, तो यह बहुत अच्छा है। इसमें कुछ डब्ल्यूटीएफ भाग हैं, लेकिन अधिकांश भाग के लिए यह ठीक है। यदि आप इसे अधिक खोदना शुरू करते हैं, तो आपको बहुत अधिक WTF कोड मिलेगा ...

जहाँ तक क्या एकमुश्त से बचने के लिए:

  • कोडआईग्निटर - फ्यूबर एमवीसी मॉडल
  • कोहना - बहुत सारे स्टैटिक्स
  • केक - PHP 4 वस्तु शब्दार्थ
  • ड्रुपल - ओओपी बिल्कुल नहीं
  • वर्डप्रेस - ओओपी बिल्कुल नहीं

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

और यही बैंक तक ले जाना है। कोई सही डिजाइन नहीं है, एक को खोजने की कोशिश मत करो। इसके बजाय, उनमें से बहुत सारे को देखें और अपने लिए फैसला करें। प्रत्येक को आज़माएं, उन्हें तोड़ने की कोशिश करें। बस उन्हें पढ़कर समझने की कोशिश करें (जो कि सने डिजाइन की एक अच्छी परीक्षा है) ...

बस मेरी निजी राय ...


2
सिम्फनी 2 के लिए +1, लेकिन इससे भी महत्वपूर्ण बात, पूरे समुदाय का निर्माण। ZF2 संभवतः ध्यान देने योग्य है, हालांकि वे चीजों को अधिक सार रखने के लिए प्रतीत होते हैं।
एड्रियन श्नाइडर

1
सिम्फनी 2 के लिए भी +1। इसका वास्तव में ठोस कोड आधार है, यह अन्य भाषाओं और रूपरेखाओं से बहुत सारे सर्वोत्तम-प्रथाओं का उपयोग करता है, एक महान समुदाय, कोर डेवलपर्स सहायक, पहुंच योग्य लोग हैं। यद्यपि विकास उन्हें बेहतर बनाने के तरीके के साथ चीजों को फिर से बनाने के साथ चल रहा है, वर्तमान स्थिति उत्पादन के लिए तैयार है। सिम्फनी के निर्माता, फेबियन पोटेंसीयर के पास सिम्फनी घटकों के साथ एक रूपरेखा बनाने के बारे में ब्लॉग पोस्ट ( fabien.potencier.org ) की एक श्रृंखला है । यह एक अच्छा प्रारंभिक बिंदु होना चाहिए, क्योंकि उन्होंने लोगों को सामान सीखने में मदद करने के लिए यह पोस्ट लिखा था।
हकन डेरिल

सिम्फनी 2 सोर्स-कोड पढ़ना वास्तव में एक प्रेरणा है, जबकि समझ में नहीं आना, अच्छी बात है। हालांकि यह टीडीडी विकसित नहीं है, जो शायद "सही" ओओपी "डिजाइन" के लिए एक आधारशिला होगा - क्योंकि कोई भी डिजाइन सही नहीं है जिसका मतलब है कि आपको इसे बदलने की आवश्यकता है और इसके लिए आपको परीक्षणों की आवश्यकता है।
हक्रे

2
ठीक है, आप गंभीरता से Wordpress और Drupal को Symfony, Zend या Kohana की तुलना नहीं कर सकते
डैनियल रिबेरो

धन्यवाद! मैंने सिम्फनी डाउनलोड कर ली है, मैं इसे समझना शुरू कर दूंगा। CodeIgniter के बारे में मेरी आशंकाओं की पुष्टि करने के लिए धन्यवाद: मैंने एक बार सिल्वरस्ट्रिप IRC पर सुना था कि "CodeIgniter एक शुरुआती OOP फ्रेमवर्क है और बहुत सी गलतियाँ करता है" - और उन्होंने PHP4 में लिखना शुरू किया, लेकिन उनके पास बड़े पैमाने पर रिफ्लेक्टर करने का समय था मुझे संदेह है कि उन्होंने इस भाषा की पेशकश की सभी शानदार विशेषताओं का उपयोग किया है। कृपया ध्यान दें कि मैं सीआई को निर्वस्त्र नहीं कर रहा हूँ! मुझे रूपरेखा से प्यार है और स्वर्ग जानता है कि मेरे लिए कितनी परियोजनाएँ आसान हो गईं क्योंकि मैंने इसका उपयोग किया। लेकिन एक सीखने के उद्देश्य के लिए यह सबसे अच्छा नहीं हो सकता है।
आदित्य एमपी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.