मैं जावा प्रोग्रामर हूं जो केकेपीएचपी की जांच करने की कोशिश करता है - वर्तमान में मुझे एप्लिकेशन संरचना/डिज़ाइन में समस्या है। मैं समझ नहीं पाया कि आवेदन के मूल तर्क कहां रखा जाए।केकपीएचपी - सेवा तर्क कहां रखा जाए
जब मैं JavaEE में विकासशील कर रहा हूँ, आम दृष्टिकोण ऐसा दिखाई देता है:
मॉडल वर्गों सरल सेम जो डेटा संस्थाओं का प्रतिनिधित्व (उत्पादों, लोग आदि) कर रहे हैं - ज्यादातर getters/setters साथ डेटा संरचनाओं की तरह;
नियंत्रक कक्षाएं पर्याप्त कक्षाएं हैं जो आवश्यक डेटा एकत्र करती हैं और उन्हें समर्पित दृश्य टेम्पलेट में इंजेक्ट करती हैं जिसे उपयोगकर्ता को भेजा जाता है;
डीएओ (डेटाएक्सेसऑब्जेक्ट) या रिपोजिटरी कक्षाएं वे हैं जो इकाइयों को डेटाबेस में लोड और स्टोर कर सकती हैं;
सेवा कक्षाएं आमतौर पर सिंगलेट्स होती हैं जिनमें कुछ व्यावसायिक-तर्क विधियां होती हैं - इन्हें अन्य सेवाओं या अनुसूचित कार्यों द्वारा नियंत्रकों द्वारा बुलाया जाता है, दूसरी तरफ वे स्वयं डेटा लाने या संशोधित करने के लिए डीएओ/रिपोजिटरी विधियों को कॉल करते हैं।
उदाहरण के लिए अगर मैं संस्थाओं Person
, Product
और Order
, जब उपयोगकर्ता कुछ उत्पाद चयन करता है और क्लिक new Order
"मेरी गाड़ी/टोकरी में डाल दिया" इस Person
बनाया जाना चाहिए के लिए है और इस Product
इस में जोड़ा जाना चाहिए Order
(हम देख सकते हैं कि Person
खराब देनदार नहीं है और Product
स्टोर आदि पर मौजूद है) - यह सब काम कुछ नियंत्रक द्वारा OrderService
के तरीकों में किया जाता है।
आमतौर पर आईओसी के कुछ प्रकार के (नियंत्रण के उलट) का इस्तेमाल किया है, ताकि सभी सेवाओं और नियंत्रकों आवश्यक सेवाएं आदि
के लिंक अब मैं थोड़ा कैसे यह सब CakePHP में किया जाता है के बारे में व्यग्र हूँ है है। मुझे यह व्यवसाय-तर्क आदि कहां रखना चाहिए?
स्पष्टीकरण के लिए धन्यवाद। ActiveRecord पैटर्न का उल्लेख करना चीजों को मेरे लिए थोड़ा और स्पष्ट करता है। आपकी व्यक्तिगत राय के बारे में - एमवीसी विचार और अच्छे प्रथाओं के बाद आपको कौन सा PHP ढांचा बेहतर लगता है? –
@ रोडियन गोरोवेन्को, वर्तमान में कोडिंग अभ्यास के संबंध में सबसे अच्छा, सिम्फनी 2 माना जाता है। लेकिन यह उपचारात्मक वर्ग में सबसे बुद्धिमान तरह की तरह है। और एसएफ 2 [एमवीसी फ्रेमवर्क नहीं है] (http://fabien.potencier.org/article/49/what-is-symfony2)। लेकिन आप इसके साथ एमवीसी डिजाइन पैटर्न का उपयोग करने में सक्षम होना चाहिए। अधिकांश पीएचपी फ्रेमवर्क, जो "एमवीसी फ्रेमवर्क" होने का दावा करते हैं, एमवीसी की रूबीऑनरल व्याख्या का पालन कर रहे हैं (देखें टेम्पलेट और मॉडल ओआरएम है), सभी डाउनसाइड्स शामिल हैं। –
अपने उत्तर @ tereško से प्यार है। कृपया इसे जारी रखो! –