मैं ORM परत के रूप में Zend फ्रेमवर्क 1 और Doctrine2 का उपयोग करके PHP में एक एप्लिकेशन बना रहा हूं। सब ठीक चल रहा है। अब, मैं नोटिस करने के लिए हुआ कि ZF1 और Doctrine2 दोनों साथ आते हैं, और अपने स्वयं के कैशिंग कार्यान्वयन पर भरोसा करते हैं। मैंने दोनों का मूल्यांकन किया है, और जबकि प्रत्येक की अपनी समर्थक और विपक्ष है, दोनों में से कोई भी मेरी साधारण जरूरतों के लिए दूसरे से बेहतर नहीं है। दोनों पुस्तकालयों को भी उनके कार्यान्वयन के खिलाफ नहीं बल्कि उनके संबंधित इंटरफेस के खिलाफ लिखा गया लगता है।
कारण क्यों मुझे लगता है कि यह एक मुद्दा है कि मेरे आवेदन के बूटस्ट्रैपिंग के दौरान, मुझे दो कैशिंग ड्राइवरों को कॉन्फ़िगर करना होगा - प्रत्येक अपने स्वयं के सिंटैक्स के साथ। एक बेमेल इस तरह से आसानी से बनाया जाता है, और इस वजह से कैशिंग बैकेंड को दो कनेक्शन स्थापित करने में अक्षमता महसूस होती है।
मैं यह निर्धारित करने की कोशिश कर रहा हूं कि आगे का सबसे अच्छा तरीका क्या है, और किसी भी अंतर्दृष्टि का स्वागत करेंगे जो आप पेश कर सकते हैं।
मैंने सोचा कि अब तक चार विकल्प हैं:
- कुछ भी न करें, स्वीकार करें कि कैशिंग कार्यक्षमता प्रदान करने वाले दो वर्ग मौजूद हैं।
- डॉक्ट्रीन के कैशिंग कार्यान्वयन पर ज़ेंड के इंटरफ़ेस को छड़ी करने के लिए एक मुखौटा वर्ग बनाएं।
- विकल्प 2, दूसरा तरीका - Zend फ्रेमवर्क बैकएंड पर Doctrine के इंटरफ़ेस को मैप करने के लिए एक मुखौटा बनाएँ।
- उन सभी पर शासन करने के लिए एक इंटरफ़ेस बनाने के लिए कई-इंटरफ़ेस-इनहेरिटेंस का उपयोग करें, और प्रार्थना करें कि कोई भी ओवरलैप्स नहीं हैं (यानी: यदि दोनों में "सेव" विधि है, तो उन्हें PHP के कारण उसी क्रम में परमेस स्वीकार करने की आवश्यकता होगी उचित बहुरूपता की कमी)।
क्या विकल्प सबसे अच्छा है, या "उपरोक्त में से कोई नहीं" संस्करण है जो मुझे नहीं पता है?