7

मुझे अपने कोडबेस (कस्टम PHP लाइब्रेरी) में एक ईवेंट प्रेषक को एकीकृत करने की आवश्यकता है, इसलिए मैंने देखा कि Symfony2 और Zend Framework 2 दोनों क्या कर रहे हैं।एक PHP लाइब्रेरी में इवेंट-प्रेषक को एकीकृत करने का सबसे अच्छा तरीका क्या है?

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

शायद पर्यवेक्षक पैटर्न को लागू करने के लिए एसपीएल इंटरफेस थोड़ा सा बेवकूफ़ हैं, इसलिए मैं आपसे पूछ रहा हूं: आप क्या करेंगे?

संपादित

यह स्पष्ट नहीं है के बाद से ... मैं एक मौजूदा प्रवर्तन निदेशालय को फिर से उपयोग करने के लिए, दे डेवलपर मेरी लाइब्रेरी में यह इंजेक्षन चाहते हैं।

मान लें कि आप एक प्रेषक के साथ एक lib विकसित करते हैं और आप जानते हैं कि आपका lib एक सिम्फनी बंडल का हिस्सा बनने वाला है और जेडएफ परियोजनाओं में फिर से उपयोग किया जा रहा है: आप निश्चित रूप से सिम्फनी और जेडएफ प्रेषक का पुनः उपयोग करना चाहते हैं अपना स्वयं का।

इसलिए मैं मुख्यधारा के पुस्तकालयों में लागू मौजूदा प्रेषकों के लिए साझा इंटरफेस की तलाश में था, लेकिन ऐसा लगता है कि कोई समाधान नहीं है।

उत्तर

4

आप अपनी आवश्यकताओं के लिए एक इंटरफेस को परिभाषित कर सकता है और उसके बाद प्रत्येक ढांचे के लिए विभिन्न एडेप्टर के साथ इसे लागू करता है।

+0

लंगड़ा, लेकिन अब के लिए ही एकमात्र विकल्प के साथ जाने के nedd :) – odino

+0

@odino क्यों सिम्फनी 2, जेडएफ 2, ऑरा, ईंधन की तुलना में एक और पीएसआर शुरू नहीं करें ... और कौन और ... सुनिश्चित नहीं है कि यह स्वीकार किया जाएगा या नहीं। एक आधार इंटरफ़ेस केवल लागू हो सकता है। –

2

मुझे लगता है कि व्यापक रूप से उपयोग किए जाने वाले घटकों में से किसी एक को चुनने का पहला तरीका यह है कि जाने का तरीका है।

उन दो विकल्प हैं जिन पर मैं विचार कर रहा हूं। आपको बस उन दोनों को देखना चाहिए और जो आपको लगता है उसे चुनना आपके लिए सबसे अच्छा काम करेगा।

बेकार प्लग: यदि आप वास्तव में कुछ वास्तव में हल्के वजन चाहते हैं, तो आप Événement पर एक नज़र डाल सकते हैं।

2

आपको PHP इंटरफ़ेस SplObserver, SplSubject को लागू करके पर्यवेक्षक पैटर्न को लागू करने की आवश्यकता है। सिर्फ ज़ेंड नहीं, सिम्फनी हुक का समर्थन करने के लिए करता है लेकिन आम तौर पर प्रत्येक घटना प्रेषक पर्यवेक्षक पैटर्न को लागू करके इस तरह से काम करता है।

यहाँ एक लेख पता करने के लिए और अधिक http://devzone.zend.com/article/4284

+1

हाय OSL, संपादित करें पर एक नज़र डालें, प्रश्न के बिंदु जो पैटर्न का उपयोग करने के लिए नहीं है, यह स्पष्ट है कि आप पर्यवेक्षक ;-) – odino

1

पुरानी पोस्ट जिसे पहले से ही स्वीकार कर लिया गया है, लेकिन मेरे पास इस तरह के आने वाले लोगों के लिए PHP में ईडीपी समाधान में गिरावट का समाधान है। के रूप में उनकी कोई इंटरफ़ेस या वर्गों है कि लाइब्रेरी का उपयोग करने के लिए प्रदान की जरूरत है, बल्कि आप बस घटना डिस्पैच करने को संभालने के लिए ठेठ php कार्यों फोन

http://prggmr.org

कार्यक्षमता Symfony के और ज़ेड के कार्यान्वयन की तुलना में बहुत अलग है।

// Subscribe to dispatched events 
subscribe(callback, signal) 

// Dispatch an event 
fire(signal) 
संबंधित मुद्दे

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