मेरी कंपनी ने कुछ वर्षों में एक मॉड्यूलर PHP फ्रेमवर्क बनाया है, जो PHP 5.3 जोड़े गए नामस्थानों से बहुत पहले शुरू हुआ था। हाल ही में, हमने अपने पुस्तकालय के नए कोड में नामस्थानों का उपयोग शुरू करने का फैसला किया, और हम अंततः पुराने कोड नामस्थान का इरादा रखते हैं। हालाँकि, हमारे पास कुछ मुद्दे हैं जिन्हें हम यह निर्धारित करने के लिए काम करने की कोशिश कर रहे हैं कि क्या नामस्थानों को पूर्व v5.3 कोडबेस में जोड़ना सिर्फ एक अच्छा विचार नहीं है:
- क्या मैं एक वैश्विक नाम स्थान का आयात (उपयोग) भी कर सकता हूं, इसलिए सभी वैश्विक वर्गों को
\
उपसर्ग की आवश्यकता नहीं है ? - यदि हम अपने पुस्तकालय में एक मौजूदा वर्ग को नामांकित करते हैं, तो हम फ्रेमवर्क अपग्रेड के रूप में सभी मौजूदा परियोजनाओं को टूटने से कैसे रोक सकते हैं? उदाहरण के लिए, क्या पुस्तकालय कक्षा
ThemeEngine
का नाम बदल सकता है\module\theme\ThemeEngine
, लेकिन मौजूदा वेबसाइटेंThemeEngine
बिना किसी कोड संशोधन के कॉल करती हैं ? यदि हां, तो वह कोड कैसा दिखेगा?