PHP में, आप class_alias
function का उपयोग कर कक्षा उपनाम परिभाषित कर सकते हैं। वर्तमान में रनटाइम पर परिभाषित सभी कक्षा उपनामों की सूची प्राप्त करने का कोई तरीका है?सभी PHP उपनामों की सूची
उत्तर
जैसा कि hek2mgl दिखाता है यह PHP में संभव नहीं है। पर निर्भर करते हुए आप चाहते हैं कि यह व्यवहार्य कामकाज हो सकता है।
मुझे लगता है कि आप अभी तीसरे पक्ष कोड में बनाए गए उपनामों का पता लगाने की कोशिश कर रहे हैं। आप कर सकता है तो install the Runkit module, runkit.internal_override
1
के मूल निवासी समारोह संशोधन सक्षम करें, और अपनी परियोजना के रूट फ़ाइल में इस तरह कुछ करने के लिए सेट करें:
runkit_function_rename('class_alias', 'class_alias_internal');
function class_alias($original, $alias, $autoload = TRUE)
{
Logsomewhere("Creating alias from $original to $alias!");
class_alias_internal($original, $alias, $autoload);
}
बेशक
यह भी मतलब है कि आप वास्तव में सूची आप बना सकते हैं की मांग की। मुझे इस कार्यक्षमता के लिए कोई रनटाइम उत्पादन उपयोग नहीं दिख रहा है (यदि मैं गलत हूं तो मुझे सही करें) ताकि आपको केवल तब तक विकास सर्वर पर ऐसा करना होगा जब तक आवश्यक हो। चूंकि रंकिट काफी खतरनाक मॉड्यूल है, जैसे ही आप इसके साथ काम कर रहे हैं, मैं इसे डिवीसर पर भी अक्षम कर दूंगा।
अन्य परिदृश्यों के लिए समान कार्यवाही व्यवहार्य हो सकती है, लेकिन मुझे यह जानना होगा कि आप यह जानकारी क्यों लेते हैं। जहां तक PHP का संबंध है, उपनाम माना जा सकता है, इसलिए यह अपना काम ठीक कर रहा है (बदलाव के लिए)।
जितना ज्यादा संदेह है, और हां, यह तीसरे पक्ष के कोड में उपनामों का पता लगा रहा है। रनकिट सुझाव के लिए धन्यवाद! –
PHP के स्रोत कोड पर एक नज़र डालें। उपनाम पंजीकृत होने के बाद, PHP को पता नहीं है कि मूल क्या है और उपनाम क्या है। फाइल सिस्टम में हार्डलिंकिंग की तरह। यह सबसे हाल के संस्करण, यहाँ है में आप कोड देख सकते हैं,: (। ध्यान दें कि लिंक पल आप यह पढ़ रहे हैं पर पुराना हो सकता है समारोह zend_register_class_alias_ex
के लिए खोज तो।) https://github.com/php/php-src/blob/master/Zend/zend_API.c#L2728
हालांकि, एक फ़ंक्शन जो क्लास टेबल की प्रविष्टियों को दिखाता है जिसमें एक से अधिक नाम संदर्भ हैं, को तैयार किया जा सकता है (PHP के मूल में, सी के साथ) लेकिन ऐसा लगता है कि यह फिलहाल उपलब्ध नहीं है।
+1 मैं आपके लिए स्रोत के माध्यम से खुदाई करने की अत्यधिक सराहना करता हूं - यह उन चीजों में से एक है जो मैं चाहता हूं कि मैं बेहतर था। –
मुझे खुशी है कि मैं मदद कर सकता हूं .. :) – hek2mgl
- 1. निर्देशिका की सूची (php)
- 2. सभी संभावित साबुन सर्वर अपवादों की सूची
- 3. navigator.Language सभी भाषाओं की सूची
- 4. सभी टिंकर घटनाओं की सूची
- 5. PHP में उपलब्ध कॉललेटर की सूची?
- 6. पीएचपी सूची सभी फाइलों
- 7. PHP/MySQL विश्वविद्यालय निर्देशांक की सूची
- 8. सभी एंड्रॉइड संसाधन फ़ोल्डर की पूरी सूची?
- 9. सभी तरल पदार्थ एसक्यूएल प्रकारों की सूची
- 10. सभी उपलब्ध matplotlib बैकेंड की सूची
- 11. सूचियों की एक सूची के सभी संयोजनों
- 12. सी #: असेंबली में सभी वर्गों की सूची
- 13. सभी Google मानचित्र मार्कर छवियों की सूची
- 14. सभी गिट की सूची करता है?
- 15. सभी पर्यावरण चरों की प्रिंट सूची
- 16. सभी उपयोगकर्ताओं की ईमेल सूची बनाएं
- 17. लैन नेटवर्क पर सभी होस्टों की सूची
- 18. एएसपी.नेट एमवीसी 4 सभी क्षेत्रों की सूची
- 19. एसक्यूएल सर्वर सभी त्रुटियों की सूची?
- 20. सभी स्थापित ऐप्स की सूची प्राप्त करें
- 21. जावास्क्रिप्ट में सभी अंतर्निहित कार्यों की सूची?
- 22. सभी शीर्ष स्तरीय डोमेनों की सूची
- 23. MongoDB: सभी डेटाबेस की सूची प्राप्त करना?
- 24. सभी टिंकर घटनाओं की मास्टर सूची?
- 25. होमब्री पैकेज में सभी फ़ाइलों की सूची
- 26. सभी मार्गों की सूची प्राप्त करें
- 27. सीएचएम फ़ाइल से सभी विषयों की सूची
- 28. सभी जोड़े की एक सूची तैयार करना
- 29. आरएसपीसी सभी लंबित उदाहरणों की सूची
- 30. सभी एंड्रॉइड उपकरणों की एक पूरी सूची
नहीं, लेकिन यदि आप केवल एक ही उपनाम बना रहे हैं, तो आप इसे किसी के लिए संभालने के लिए किसी प्रकार का रैपर सिंगलटन क्लास बना सकते हैं। – Smuuf