2013-06-07 5 views
7

पर विचार करें कि मैं डेटाबेस के लिए एक उपयोगकर्ता को बचाने के लिए सक्षम होना चाहते हैं, मेरा ऐड कार्रवाई के रूप में अनुवर्ती है उपयोगकर्ता को डेटाबेस में, हालांकि अगर मुझे कुछ जटिल व्यावसायिक तर्क जोड़ने की ज़रूरत है, तो मैं यह जांचना चाहता हूं कि ईमेल अनूठा है या नहीं और मैं यह भी जांचने के लिए कुछ वेब सेवा तक पहुंचना चाहता हूं, जीवन, ब्रह्मांड, और ब्रह्मांड के अंतिम प्रश्न का उत्तर है। सबकुछ वास्तव में 42 है और यदि सत्य है तो मैं उपयोगकर्ता को डेटाबेस में सहेजना चाहता हूं अगर मैं उपयोगकर्ता को कोई संदेश नहीं दिखाना चाहता हूं।Zend Framewok 2, सिद्धांत 2 और जहां व्यापार तर्क फिट कर में

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

सर्विस लेयर समाधान को गिराना, कोई क्लास UserBusinessLogic बना देगा और एक विधि सहेज देगा जो व्यवसाय तर्क करेगा और सब कुछ ठीक होने पर उपयोगकर्ता को सहेज देगा।

क्या यह सही है? क्या इस विषय पर कोई दस्तावेज है? शायद एक कोड उदाहरण दिखाता है कि कैसे व्यवहार 2 और zf2 और सेवाओं का उपयोग कर व्यापार तर्क से निपटने के लिए।

मुझे लगता है कि नीचे की रेखा है: zf2 और doctrine 2 का उपयोग करते समय व्यवसाय तर्क कहां रखना है, इसका सबसे अच्छा अभ्यास क्या है?

यह मानते हुए कि सेवा समाधान जाने का सबसे अच्छा तरीका है। यदि मेरे पास संस्थाएं उपयोगकर्ता, समूह और उन दोनों के बीच संबंध हैं, तो मैं "एक्सेस" नामक एक सेवा तैयार करूंगा और यह सेवा वह होगी जो नियंत्रकों से डेटा को उपयोगकर्ताओं को समूह सहेजने के लिए प्राप्त करेगी, उन 2 को लिंक करें और कोई अन्य कार्य भी करें उपयोगकर्ता पासवर्ड रीसेट करने के लिए मेल भेजना। क्या यह सही लगता है?

उत्तर

1

आपके पास सही विचार है। सिद्धांत को दो-दो जोड़े करने के लिए आप एक और परत बना सकते हैं जो ज़ेंड \ डीबी में इंटरफेस में से एक का पालन करता है, लेकिन डेटाबेस इंटरैक्शन को पूरा करने के लिए सिद्धांत का उपयोग करता है।

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

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

+1

अच्छा लग रहा है, लेकिन दिखाने के लिए कुछ और काम है। यह अच्छा होगा अगर zf2 कंकाल अनुप्रयोग इस स्थिति का कुछ उदाहरण है – uacaman

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