(7-मार्च 2013) अस्वीकरण: इस उत्तर शायद अब पुराना हो चुका एक सा है। मैं इस समय PHP समुदाय के साथ नहीं रह रहा हूं और यह तुलना सिद्धांत ओआरएम v2 और ज़ेंड फ्रेमवर्क v1 के बीच है। यह एक सेब बनाम संतरे की तुलना है क्योंकि वे दो अलग-अलग चीजें हैं।
आउट ऑफ द बॉक्स Zend_Db पीडीओ, जहां के रूप में सिद्धांत 2 एक वस्तु संबंधपरक मैपर (जो अपने आप DBAL के शीर्ष पर बैठता है) है की चोटी पर अधिक सिर्फ एक बढ़ाया डेटाबेस अमूर्त परत है।
अधिक जटिल डोमेन परतों के लिए सिद्धांत 2 बहुत बेहतर है, क्योंकि आपके सभी व्यावसायिक तर्क, दृढ़ता तर्क, आदि कई कक्षाओं में अलग हो गए हैं, इसलिए वे कई भूमिकाएं नहीं देते हैं। इसके अलावा, क्योंकि आपके पास अधिक कक्षाएं हैं - जो क्लीनर और ढीले-युग्मित हैं - यह उन्हें अधिक आसान परीक्षण करती है।
फ़्यूथरमोर, आप SQL का केवल अंश ही लिखेंगे जो आप Zend_Db का उपयोग कर रहे हैं, क्योंकि आप अपनी इकाई ऑब्जेक्ट्स में हेरफेर कर सकते हैं और सिद्धांत डेटाबेस में उन परिवर्तनों का अनुवाद करता है। जेनरेटेड एसक्यूएल लेनदेन का लाभ भी लेता है जो आपको एक अच्छा प्रदर्शन लाभ देता है!
मैं आपको डॉक्टर-संचालित डिजाइन पर पढ़ने की सलाह दूंगा ताकि यह समझ सके कि सिद्धांत 2 इतना बढ़िया क्यों है।
मुझे गलत हालांकि मिलता है नहीं, तो आप Zend_Db साथ DDD कर सकते हैं लेकिन यह वास्तव में वहाँ OOTB नहीं है (क्योंकि यह एक ORM नहीं है), और लगभग के रूप में शक्तिशाली और पूर्ण विशेषताओं सिद्धांत की तरह 2.
नहीं होगा
सहमत हुए। Zend_Db किसी भी मध्यम या बड़ी परियोजना के लिए एक गड़बड़ है। जबकि सिद्धांत में आपके पास प्रत्येक इकाई के लिए एक संग्रह है, Zend_Db के साथ आप Zend_Db_Table को विस्तारित कर देंगे, जो तालिका डेटा गेटवे पैटर्न का उपयोग करेगा, और getAllAllowedUsers() जैसे विधियों सहित कई सारणी में शामिल होने वाले एसक्यूएल के साथ और जिसके परिणामस्वरूप Zend_Db_Table_Row वास्तव में ' टी में आपके वास्तविक व्यापार मॉडल के साथ कुछ भी नहीं है। तो आप रिपोजिटरी पैटर्न के साथ Zend_Db_Table मर्ज करें। हो सकता है कि आपको एहसास हो कि आपको वास्तव में डेटा मैपर की आवश्यकता है, इसलिए आप पहिया को फिर से शुरू करने के लिए अपना खुद का कार्यान्वयन करना शुरू कर दें। –
या इससे भी बदतर: कुछ डेवलपर नियंत्रक पर ही चयन करते हैं। 'listAction() {' $ userTable-> चुनें() '... –
मुझे पता है कि यह एक पुराना सवाल है, लेकिन दो साल के सिद्धांत 2 + ज़ेंड फ्रेमवर्क प्रयोग में मैं पूरी तरह से सिद्धांत 2 का उपयोग करने की सिफारिश नहीं करता हूं यह बहुत धीमा है धीमा, यह वेब अनुप्रयोग के लिए अच्छा नहीं है, इसमें बहुत ही अमूर्तता है लेकिन इसमें बड़ी कमी भी है। – albanx