नेमस्पेस 5.3
कम से कम वर्गों के मामले में के रूप में ही उपलब्ध हैं, तो आप की जाँच करने के class_exists
फ़ंक्शन का उपयोग कर सकते हैं अगर एक वर्ग पहले से ही एक तरह से परिभाषित किया गया है वैश्विक नामस्थान के भीतर नाम। __autoload()
फ़ंक्शन के साथ युग्मित, आप एक सार्वभौमिक उपनाम बना सकते हैं और सिस्टम को मूल नाम से नामित दोनों कक्षाओं के साथ-साथ किसी प्रकार के अतिरिक्त पहचानकर्ता के साथ नाम की जांच कर सकते हैं। मैं एक उदाहरण के रूप में "एनएस" का उपयोग करूंगा।
function __autoload($class){
try{
require_once('ns'.$class.'.php');
}catch(Exception $e){
echo 'The class is unavailable in pseudo-namespace as well as global';
}
}
बस सुनिश्चित करें कि जहां भी आप अपने मॉडल रखते हैं, पथ पथ की आवश्यकता होती है। आप उपनाम के बजाय एक अलग फ़ोल्डर का भी उपयोग कर सकते हैं।
इस तरह, किसी भी डुप्लिकेट कक्षाओं को मुख्य निष्पादन से अलग फ़ाइलों में रखा जा सकता है जो केवल तभी शामिल होते हैं जब वे वैश्विक में मौजूद न हों। हालांकि यह कक्षाओं का भौतिक रूप से नाम बदलने की समस्या को सख्ती से ठीक नहीं करता है, यह आपको संस्करण परिभाषा आदि के लिए अपनी परिभाषाओं को अलग-अलग निर्देशिकाओं में रखने की अनुमति देगा।
नहीं। इस प्यारा मैनुअल को पढ़ें: http://php.net/manual/en/language.namespaces.php –
समर्थित नहीं होने पर, आप निश्चित रूप से उन्हें हटा सकते हैं। जैसा कि ऐसा होता है हाल ही में आया: http://stackoverflow.com/questions/1836387/strategy-for-developing-namespaced-and-non-namespaced-versions-of-same-php-code/3661724#3661724 - सुनिश्चित नहीं है कि आपने इसके लिए पूछा है, या यदि यह वास्तव में था सिंटैक्स हाइलाइटिंग के बारे में बस? – mario
PHP प्रीप्रोकस अच्छा लगता है। लेकिन मैं वेरिएबल क्लास नामों का भी उपयोग करता हूं जिन्हें उस स्क्रिप्ट के साथ प्रोसेस नहीं किया जाता है। – kravemir