2012-07-16 22 views
5

एक सिम्फनी 2 एप्लिकेशन में आम तौर पर इकाइयों का संग्रह होता है। एक सिद्धांत EntityManager आमतौर पर इन इकाइयों को लाने और बनाए रखने के लिए उपयोग किया जाता है।सिम्फनी लाने/इकाई-उन्मुख सेवा नामकरण सम्मेलन और सर्वोत्तम अभ्यास

इकाइयों का उपयोग पूरे आवेदन में कई स्थानों पर किया जाता है; कई संस्थाओं और प्रति इकाई के लिए, किसी दिए गए इकाई के संचालन को अपनाने और सेवा में बने रहने के लिए यह समझ में आता है।

उदाहरण के लिए, एक User इकाई के लिए वहाँ एक UserServicefetchUser($user_id) और persistUser(User $user) तरीकों (या शायद सिर्फ fetch() और persist() के तरीकों के साथ हो सकता है, यह केवल एक उदाहरण है)।

एक आवेदन संस्थाओं को लाने और बनाए रखने के लिए कई इकाई उन्मुख सेवाओं के साथ समाप्त हो सकता है। ऐसी सेवाएं उनके इंटरफेस में समान होंगी, जो इकाई के प्रकार में भिन्न होती हैं।

कि एक एप्लिकेशन में कई इकाई-उन्मुख सेवाओं को एक सामान्य स्थिति दिखाई दे सकती है। यह इस प्रकार है कि इस तरह की सेवाओं का नामकरण और वास्तुकला का मामला एक आम समस्या है।

के सृजन की आवश्यकता के लिए एक नया आवेदन के लिए, उदाहरण के लिए, एक आधार EntityService और बच्चे UserService, WidgetService और ProductService कक्षाएं, दोहराव लगता है इस तरह के पहलुओं के साथ काम कर एक हल समस्या नहीं होनी चाहिए के लिए साधन के रूप में।

  • एक Symfony आवेदन में ऐसी संस्था प्रबंधन से संबंधित सेवाओं को शुरू करने के लिए वहाँ सर्वोत्तम प्रथाओं हैं?

    ऐसा लगता है कि यह एक हलचल समस्या होनी चाहिए, शायद एक अच्छी तरह से ट्राइड डिजाइन पैटर्न का पालन करने के लिए।

  • क्या ऐसे नामकरण सम्मेलन हैं जिनका पालन करने के लिए सलाह दी जाएगी?

    मैंने विभिन्न अनुप्रयोगों में, 'उपयोगकर्ता प्रबंधक' और 'उपयोगकर्ता सेवा' दोनों को सेवा नाम के रूप में चुना है। क्या मौजूदा सम्मेलन हैं?

+0

चूंकि मेरे पास एक समान प्रश्न है, और चूंकि मुझे एक उत्तर खोजने के लिए मैं "मेरा" कुछ प्रसिद्ध बंडल हूं, मैं आपको बताता हूं कि "प्रबंधक" नामकरण सम्मेलन को "सेवा" नामकरण सम्मेलन के लिए पसंद किया जाना चाहिए। – DonCallisto

उत्तर

1

नामकरण के लिए के रूप में, वहाँ कोई सम्मेलनों है कि मैं ऐसी स्थितियों के लिए के बारे में पता कर रहे हैं, लेकिन वहाँ Doctrine\ORM\EntityManager वर्ग जो इकाई का प्रबंधन करता है, इसलिए मैं Manager बजाय Service का प्रयोग करेंगे।

अब, इकाई प्रबंधन सेवाओं के बारे में बात करते हुए: क्या आपको वास्तव में बहुत सारी सेवाओं की आवश्यकता है? यदि UserService::persistUser() विधि केवल उपयोगकर्ता को बनाए रखने के अलावा कुछ भी नहीं करती है, तो आप कस्टम सेवा का उपयोग क्यों कर रहे हैं और डिफ़ॉल्ट EntityManager नहीं?

इसके अलावा, आपको एक ही कक्षा में सभी को एक साथ भंडार और स्थायी तरीकों को नहीं रखना चाहिए। इकाई के लिए कस्टम भंडार का उपयोग करना आसान नहीं है?

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