उपयोग करने के लिए एक गोचरा है, जबकि यह सबसे तेज़ विधि है, यह आपके सभी फ़ाइलनामों को कमतर करने की भी अपेक्षा करता है।
spl_autoload_extensions(".php");
spl_autoload_register();
उदाहरण के लिए:
वर्ग SomeSuperClass युक्त फ़ाइल को somesuperclass.php नाम देना होगा, यह एक ऐसा है जब लिनक्स जैसी संवेदनशील फ़ाइल प्रणाली का उपयोग करते समय, यदि आपकी फ़ाइल का नाम SomeSuperClass.php है, लेकिन Windows के लिए कोई समस्या नहीं है।
अपने कोड में __autoload का उपयोग करना अभी भी PHP के वर्तमान संस्करणों के साथ काम कर सकता है, लेकिन उम्मीद है कि यह सुविधा पदावनत हो जाएगी और अंततः भविष्य में हटा दी जाएगी।
तो क्या विकल्प बचे हैं:
यह संस्करण PHP 5.3 और उसके बाद के संस्करण के साथ काम करेगा और कुछ नामसुपरक्लासass.php और somesuperclass.php की अनुमति देता है। यदि आपका 5.3.2 और इससे अधिक का उपयोग हो रहा है, तो यह ऑटोलैडर और भी तेजी से काम करेगा।
<?php
if ( function_exists ( 'stream_resolve_include_path' ) == false ) {
function stream_resolve_include_path ( $filename ) {
$paths = explode ( PATH_SEPARATOR, get_include_path () );
foreach ( $paths as $path ) {
$path = realpath ( $path . PATH_SEPARATOR . $filename );
if ( $path ) {
return $path;
}
}
return false;
}
}
spl_autoload_register ( function ( $className, $fileExtensions = null ) {
$className = str_replace ( '_', '/', $className );
$className = str_replace ( '\\', '/', $className );
$file = stream_resolve_include_path ( $className . '.php' );
if ( $file === false ) {
$file = stream_resolve_include_path ( strtolower ( $className . '.php' ) );
}
if ( $file !== false ) {
include $file;
return true;
}
return false;
});
AS
। इसलिए यह समाधान काम नहीं करता है। आप बस आसानी से कर सकते हैं:use Person\Barnes\David\Class1;
(जो इसके बराबर हैuse Person\Barnes\David\Class1 as Class1;
)।