मैं जावा/ग्रेल्स पृष्ठभूमि से आया हूं और मुझे एक निश्चित उत्तर ऑनलाइन नहीं मिल रहा है, जहां केकेपीएचपी एप्लिकेशन के लिए सेवा तर्क संग्रहीत किया जाना चाहिए। "सेवाओं" द्वारा, मैं कक्षाओं के बारे में बात कर रहा हूं जो आमतौर पर डोमेन ऑब्जेक्ट्स पर व्यावसायिक तर्क करने के लिए निर्भरता इंजेक्शन के माध्यम से तत्काल होते हैं। वे किसी भी डोमेन ऑब्जेक्ट से पूछने और नियंत्रक कार्रवाई के जवाब में परिवर्तन करने में सक्षम होना चाहिए।केकपीएचपी: 'सर्विसेज' तर्क कहां रखा जाए
वर्तमान में, केकपीएचपी का "घटक" वर्ग इस व्यवहार का सबसे निकटतम मैच प्रतीत होता है। मैं किसी भी नियंत्रक में एक घटक लोड कर सकता हूं और आवश्यकतानुसार इसकी विधियों को निष्पादित कर सकता हूं। हालांकि, मैंने कई स्थानों पर पढ़ा है कि घटकों को कभी भी डेटाबेस तक नहीं पहुंचना चाहिए और ऐसा करने से कुछ तेज प्रदर्शन हिट हो जाएंगी।
मैंने केकपीएचपी के "व्यवहार" वर्ग में भी देखा है और यह टिकट बिल्कुल फिट नहीं लगता है। ऐसा लगता है कि डोमेन ऑब्जेक्ट्स को डेटा स्ट्रक्चर सेटिंग में व्यवस्थित करने के लिए अच्छी तरह से सुसज्जित है, लेकिन यह तर्क नहीं है कि एक सेवा निष्पादित होगी। साथ ही, किसी व्यवहार में किसी भी मॉडल परिभाषा को आयात करने के लिए, मुझे एक्सेस की अनुमति देने के लिए मॉडल परिभाषा को स्वयं संपादित करना होगा, जो बहुत अजीब है।
तो मैं इस सवाल से पूछता हूं: सेवा तर्क कहां से संग्रहीत किया जाना चाहिए? निश्चित रूप से नियंत्रक नहीं, क्योंकि इसमें अनुरोध को संसाधित करने और प्रतिक्रिया भेजने के लिए केवल न्यूनतम तर्क होना चाहिए।
यहां आपके लिए एक निशुल्क संकेत है: केकेपीएचपी से दूर रहें। यह PHP में सबसे खराब ढांचे में से एक है और यह निश्चित रूप से एमवीसी की तरह दूरस्थ रूप से कुछ भी लागू नहीं करता है। अगर ऐसा कुछ ऐसा करना चाहते हैं जो कम से कम "सेवाओं" की अवधारणा को पहचान ले, तो आप Symfony2 को आजमा सकते हैं। –
तर्क 1: वैश्विक राज्य। केकेपीएचपी मूल रूप से सिंगलेट्स और अन्य स्थैतिक रूप से स्कॉप्ड पैरामीटर के उपयोग के आसपास आधार है। –
तर्क 2: स्थैतिक वर्ग: केकपीएचपी कोर के अधिकांश में स्थिर तरीके होते हैं। इससे सभी कोड कड़ाई से कक्षाओं के विशिष्ट नामों के साथ मिलते हैं, जो नामस्थान के रूप में उपयोग किए जाते हैं। –