मैं कुछ वर्गों और इंटरफेस के साथ php में नेमस्पेस का उपयोग करने का प्रयास कर रहा हूं।PHP नेमस्पेस और इंटरफेस
ऐसा प्रतीत होता है कि मुझे इंटरफ़ेस और कंक्रीट प्रकार दोनों का उपयोग करने के लिए एक उपयोग कथन रखना होगा। यह निश्चित रूप से इंटरफेस का उपयोग करने के उद्देश्य को हरा रहा है? इस निश्चित रूप से है कि के खिलाफ जाता है -
तो मैं
//Interface
namespace App\MyNamesapce;
interface MyInterface
{}
//Concrete Implementation
namespace App\MyNamesapce;
class MyConcreteClass implements MyInterface
{}
//Client
namespace App;
use App\MyNamespace\MyInterface // i cannot do this!!!!
use App\MyNamespace\MyConcreteClass // i must do this!
class MyClient
{}
Isnt इंटरफेस के पूरे मुद्दे ताकि ठोस प्रकार परस्पर विनिमय कर रहे हो सकता है। जब तक मैं कुछ सही तरीके से नहीं कर रहा हूं
तो 'उपयोग नामस्थान' का उपयोग करने के बजाय बस कक्षा के लिए पूर्ण पथ का उपयोग करें? –
जरूरी नहीं है, आप कक्षा को वर्तमान नामस्थान में भी आयात कर सकते हैं। यह सिर्फ शैली का मामला है। – Niko
हां, मैं बस सोच रहा था कि एक इंटरफ़ेस का उपयोग करने के बाद से मैं नामस्थान को इंटरफेस बनाना चाहता हूं - लेकिन वास्तव में प्रतिबिंब पर जो कोई समझ नहीं लेता है। निर्भरता इंजेक्शन का उपयोग करने के लिए एक बेहतर विकल्प होगा, मुझे लगता है कि कभी भी एक वर्ग को तत्काल नहीं बदला जा सकता है? –