PHP ओआरएम: सिद्धांत बनाम प्रोपेल




orm symfony1 (6)

मैं symfony साथ एक नई परियोजना शुरू कर रहा हूं जिसे Doctrine और Propel साथ आसानी से एकीकृत किया गया है, लेकिन मुझे निश्चित रूप से एक विकल्प बनाने की ज़रूरत है .... मैं सोच रहा था कि क्या अधिक अनुभवी लोगों के पास सामान्य पेशेवर और / या विपक्ष के साथ जाने के लिए इन दोनों में से कोई भी?

बहुत बहुत धन्यवाद।

संपादित करें: सभी प्रतिक्रियाओं, उपयोगी सामग्री के लिए धन्यवाद। इस प्रश्न का कोई सही जवाब नहीं है, इसलिए मैं सबसे लोकप्रिय अप-वोट प्राप्त करने वाले व्यक्ति को अनुमोदित कर दूंगा।


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

http://propel.posterous.com/propel-141-is-out


मैं डीबीफाइंडर प्लगइन का उपयोग करने का सुझाव दूंगा । यह वास्तव में एक बहुत ही शक्तिशाली प्लगइन है जो दोनों का समर्थन करता है, और यह काफी अच्छा है। मैं वास्तव में इसे बेहतर से बेहतर इस्तेमाल करना पसंद करता हूं।


मैं पक्षपाती हूं, क्योंकि मैं प्रोपेल की अगली रिलीज पर थोड़ी सी मदद करता हूं, लेकिन आपको यह समझना चाहिए कि प्रोपेल वास्तव में पहला ओआरएम उपलब्ध था, फिर डॉक्टर ने बनाया था, लेकिन अब सक्रिय विकास हुआ है। सिम्फनी 1.3 / 1.4 प्रोपेल 1.4 के साथ आता है, जहां अधिकांश तुलना प्रोपेल 1.3 पर रुकती है। इसके अलावा, प्रोपेल (1.5) की अगली रिलीज में बहुत सारे सुधार होंगे, खासकर आपके मानदंड के निर्माण में (जिसके परिणामस्वरूप आपके लिए लिखने के लिए कम कोड होगा)।

मुझे प्रोपेल पसंद है क्योंकि यह सिद्धांत से कम जटिल प्रतीत होता है: अधिकांश कोड कुछ जेनरेट किए गए वर्गों में होता है, जबकि सिद्धांत ने कई वर्गों में कार्यक्षमता को विभाजित कर दिया है। मुझे उन पुस्तकालयों की अच्छी समझ है जो मैं उपयोग कर रहा हूं (बहुत अधिक "जादू" नहीं), लेकिन निश्चित रूप से, मुझे प्रोपेल के साथ और अधिक अनुभव है, इसलिए शायद दृश्यों के पीछे सिद्धांत इतना जटिल नहीं है। कुछ कहते हैं कि प्रोपेल तेज है, लेकिन आपको इसे अपने लिए जांचना चाहिए, और इस पर विचार करें कि इससे अन्य मतभेदों से अधिक है या नहीं।

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


मैं प्रोपेल 1.6 का उपयोग करने का सुझाव दूंगा जो आईडीई के स्वत: पूर्ण कार्य के लिए बेहतर है।


यदि मैं गलत नहीं हूं, तो दोनों ORMs XML- आधारित स्कीमा का उपयोग करते हैं, और इन स्कीमा परिभाषा को बनाना बहुत बोझिल है। यदि आपको धाराप्रवाह शैली के साथ एक PHP- आधारित सरल स्कीमा की आवश्यकता है। आप LazyRecord https://github.com/c9s/LazyRecord को आज़मा सकते हैं, यह स्वचालित माइग्रेशन का समर्थन करता है और स्क्रिप्ट जेनरेटर को अपग्रेड / डाउनग्रेड करता है। और सभी वर्ग फ़ाइलों को रनटाइम लागत के बिना स्थिर रूप से जेनरेट किया जाता है।


यह ध्यान दिया जाना चाहिए कि सिद्धांत 2 वर्तमान में विकास में विकसित है [ed] और सिद्धांत 1 के वर्तमान स्थिर संस्करण से लगभग पूरी तरह से अलग है। यह सक्रिय रिकॉर्ड के बजाय डेटा मैपर पैटर्न पर निर्भर करता है, और दृढ़ता को संभालने के लिए 'इकाई प्रबंधक' का उपयोग करता है तर्क। रिलीज होने पर यह जावा के हाइबरनेट के करीब समानता रखेगा (सिद्धांत 1 रेल की ActiveRecord की तरह अधिक है)।

मैं सिद्धांत 2 की अल्फा रिलीज के साथ विकास कर रहा हूं, और यह कहना चाहिए कि यह सिद्धांत 1 के ऊपर सिर और कंधे है (केवल मेरी राय है, और मैंने कभी भी प्रोपेल का उपयोग नहीं किया है)। संभावनाएं अच्छी हैं कि जब इसे जारी किया जाता है तो सिद्धांत समुदाय इसके आगे बढ़ेगा।

मैं आपको सिद्धांत की जांच करने के लिए प्रोत्साहित करता हूं, लेकिन यदि आप सक्रिय रिकॉर्ड शैली पसंद करते हैं जो प्रोपेल और सिद्धांत अब उपयोग करते हैं, तो आप केवल प्रोपेल के साथ रहना चाहेंगे।





propel