जब संगीतकार ने दिखाया और तूफान से PHP पैकेज प्रबंधन की दुनिया को ले लिया, तो चीजें बदल गईं। इसके कुछ नियमों के कारण, फ़ोल्डर्स अक्सर डुप्लिकेट किए जाते हैं और संगीतकार के माध्यम से PSR-0 क्लास इंस्टॉलेशन को देखते हुए बहुत गहरा हो जाते हैं। उदाहरण के लिए, कुछ फ़ोल्डर संरचनाएं इस तरह समाप्त हो गईं:
यह सबसे अच्छा अराजक है, क्योंकि:
] यह PSR-0 अनुपालन की एक विरूपण साक्ष्य है।
psr-4
] यह हो सकता है, लेकिन नहीं करना है PSR-4 का मुख्य लक्ष्य PSR-0 के अवशेषों और पूर्व-पूर्व-पूर्व-पूर्व को पूरी तरह से हटाना है, और अधिक संक्षिप्त फ़ोल्डर संरचना के लिए अनुमति देता है। PSR-4 के साथ, उपरोक्त फ़ोल्डर ट्री इस तरह दिखेगा:vendor/ vendor_name/ package_name/ src/ Vendor_Name/ Package_Name/ ClassName.php # Vendor_Name\Package_Name\ClassName tests/ Vendor_Name/ Package_Name/ ClassNameTest.php # Vendor_Name\Package_Name\ClassNameTestविक्रेता/ vendor_name/ package_name/ एसआरसी/ Classname.php # vendor_name \ package_name \ classname परीक्षण/ Classnametest.php # vernor_name \ package_name \ classnametest
PSR-0 को अपग्रेड करना एक विकल्प नहीं था
]
] हम PSR-4 पैकेज-ओरिएंटेड ऑटोलोडिंग कहते हैं, क्योंकि यह सादगी से पहले पैकेज की सफाई का पक्षधर है।
चुना हुआ दृष्टिकोण
] ] ] यदि विफलता के बारे में अतिरिक्त जानकारी की आवश्यकता है, तो किसी को PSR-3 संगत लकड़हारा या अन्य मनमाना साधनों का उपयोग करना चाहिए।इस तरह दिखेंगे:
vendor/ vendor_name/ package_name/ src/ ClassName.php # Vendor_Name\Package_Name\ClassName tests/ ClassNameTest.php # Vendor_Name\Package_Name\ClassNameTestphp // लोडर को इंस्टेंट करें $ लोडर = new \ example \ psr4autoloaderclass; // ऑटोलॉडर को पंजीकृत करें $ लोडर-> रजिस्टर (); // नेमस्पेस उपसर्ग के लिए आधार निर्देशिकाओं को पंजीकृत करें $ लोडर-> addnamespace ('foo \ bar', '/path/to/packages/foo-bar/src'); $ लोडर-> addnamespace ('foo \ bar', '/path/to/packages/foo-bar/tests');
] पहले पंजीकृत निर्देशिका से लोड करने का प्रयास करेंगे, जबकि नया \ foo \ bar \ qux \ quuxtest; दूसरे से लोड करने का प्रयास करेंगे।
]निष्कर्षऑटोलोडिंग में कोई चांदी की गोली नहीं है। प्रत्येक दृष्टिकोण अपने आप को कुछ पेशेवरों और विपक्षों के साथ लाता है-PSR-4 सरल फ़ोल्डर संरचनाओं के लिए अनुमति देगा, लेकिन हमें पूरी तरह से योग्य नाम को देखकर एक वर्ग के सटीक पथ को जानने से रोकेगा। दूसरी ओर PSR-0 हार्ड ड्राइव पर अराजक है, लेकिन उन डेवलपर्स का समर्थन करता है जो अतीत (अंडरस्कोर-इन-क्लास-नाम उपयोगकर्ताओं) में फंस गए हैं और हमें केवल इसके नाम को देखकर एक वर्ग के स्थान को समझने में मदद करते हैं।
आप PSR-4 के बारे में कैसा महसूस करते हैं? हमें नीचे टिप्पणियों में बताएं, या कई बहसों में से एक में अपनी राय व्यक्त करें।
] यदि औपचारिक रूप से एक मानक के रूप में स्वीकार नहीं किया जाता है, तो कस्टम उन लोगों द्वारा लागू किया जाता है जिन्हें इसकी आवश्यकता होती है। यह चर्चा में शामिल होने और इस औपचारिक स्थिति तक पहुंचने के लिए पर्याप्त धारणा में सुधार करना है।PSR-4 का उपयोग करने के क्या लाभ हैं? यह PHP में Autoloading के लिए अनुशंसित मानक भी है, जिससे यह नई परियोजनाओं के लिए एक अच्छा विकल्प बन जाता है। PSR-4 में, नेमस्पेस के एक हिस्से को किसी भी निर्देशिका में मैप किया जा सकता है, और बाकी नामस्थान को उपनिर्देशिका संरचना में मैप किया जा सकता है। इसके लिए आपकी परियोजना की निर्देशिका संरचना का पुनर्गठन की आवश्यकता हो सकती है। यदि आप PHP के एक पुराने संस्करण का उपयोग कर रहे हैं, तो आपको PSR-4 का उपयोग करने के लिए अपग्रेड करने की आवश्यकता होगी।
PHP में ऑटोलोडिंग का भविष्य क्या है? हालांकि, भविष्य के भविष्य के लिए, PSR-4 Php में ऑटोलोडिंग के लिए अनुशंसित मानक है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3