2012-09-19 21 views
14

मैं केकपीएचपी 2.2 का उपयोग कर एक नई वेब प्रोजेक्ट पर काम शुरू करने वाला हूं, जो ज्यादातर ज़ेन फ्रेमवर्क 1 के साथ पहले काम करता था।केकपीएचपी के मानक डेटाबेस ओआरएम के बजाय सिद्धांत का उपयोग क्यों करें?

पहली बार देखो, मुझे वास्तव में केकपीएचपी मॉडल और अंतर्निहित डेटाबेस तालिकाओं को संभालने का तरीका पसंद है, खासतौर पर एक-से-कई और कई से अधिक संबंधों को कम से कम झगड़े के साथ जल्दी से स्थापित करने के संबंध में। ऐसा लगता है कि ज़ेन फ्रेमवर्क में चीजों को कैसे किया जाता है, इसकी तुलना में यह ताजा हवा की सांस है।

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

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

उत्तर

11

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

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

+0

अब मैंने ज़ेडएफ 1 से केकेपीएचपी तक एक पुरानी परियोजना को पोर्ट किया है (क्योंकि मुझे ज़ेडएफ 2 की दिशा पसंद नहीं है) और मुझे लगता है कि आपका जवाब अब तक केकेपीएचपी के साथ अपने अनुभव को काफी हद तक पूरा करता है। मुझे डिजाइन में इसकी सापेक्ष सादगी पसंद है और यह देख सकता है कि इस चरण में सिद्धांत का उपयोग करने के लिए केकपीएचपी का "जादू" अनावश्यक होगा। मैं अब केकेपीएचपी के ओआरएम के साथ रहना चाहता हूं और भविष्य में कभी-कभी सिद्धांत को देख सकता हूं। – monkeyhybrid

+2

मूल रूप से इस प्रश्न का उत्तर देने के बाद से चीजें बहुत बदल गई हैं। केकेपीएचपी 3.x में ओआरएम को फिर से लिखा गया है और पिछले संस्करणों में एक बड़ा सुधार है। इसे अकेले स्टैंड भी इस्तेमाल किया जा सकता है https://github.com/cakephp/orm रिवर्स भी संभव है: केकपीएचपी के साथ एक और ओआरएम लाइब्रेरी का उपयोग करना, लेकिन व्यक्तिगत रूप से मुझे ऐसा करने का कोई कारण नहीं दिखता है। केकेपीएचपी 3.x का ओआरएम इतना अच्छा है। – ADmad

+0

मैंने हाल ही में केकपीएचपी 3.2 के आधार पर एक नई परियोजना पर काम करना शुरू किया, और मुझे कहना होगा कि ओआरएम बहुत अच्छा दिखता है! – monkeyhybrid

4

आप पहले से ही सिद्धांत और CakePHP के ORM साथ काम किया है, तो आप मुख्य कारणों के आधार पर तय कर सकते हैं बदलने के लिए:

  • क्या आप और अधिक उत्पादकता दे देंगे?
  • आपको और अधिक रखरखाव क्या देगा?
  • आपको कम सीखने की वक्र क्या मिलेगी?

व्यक्तिगत रूप से, मैं इस तथ्य के आधार पर सिद्धांत चुनता हूं कि यह वास्तव में एक समस्या के लिए विशिष्ट है।

+0

मैंने वास्तव में अभी तक सिद्धांत के साथ कोई गंभीर कार्य नहीं किया है और केकपीएचपी के ओआरएम के साथ केवल एक छोटी राशि है, जो कि मेरे प्रोजेक्ट के मसौदे की कुछ बुनियादी कार्यक्षमता प्राप्त करने के लिए पर्याप्त है। व्यक्तिगत रूप से, जो मैंने अभी तक खेला है, मुझे लगता है कि केकपीएचपी आपके तीनों सवालों के जवाब देता है, कम से कम जो मैंने अभी तक देखा है। हालांकि, मुझे आश्चर्य है कि क्या लाइन के नीचे कुछ रास्ता है जिसे मैं केकपीएचपी के ओआरएम को खोजने के लिए कुछ कार्यक्षमता खो रहा हूं जो सिद्धांत द्वारा पेश की जाती है। – monkeyhybrid