Has a gotcha kullanmak, en hızlı yöntem olsa da, tüm dosya adlarınızın küçük harf olmasını bekler.
spl_autoload_extensions(".php");
spl_autoload_register();
Örneğin:
SomeSuperClass sınıfını içeren bir dosyanın somesuperclass.php olarak adlandırılması gerekir, bu, Linux gibi büyük / küçük harfe duyarlı bir dosya sistemi kullanırken, eğer dosyanız SomeSuperClass.php olarak adlandırılmışsa ancak Windows altında bir sorun değilse, bir gotcha'dır.
__Autoload'u kodunuzda kullanmak PHP'nin mevcut sürümleriyle hala çalışabilir, ancak bu özelliğin kullanımdan kaldırılmasını ve gelecekte de kaldırılmasını bekleyin.
Öyleyse hangi seçenekler kaldı:
Bu sürüm PHP 5.3 ve üstü ile çalışacak ve SomeSuperClass.php ve somesuperclass.php dosya isimlerine izin verecektir. 5.3.2 ve üstünü kullanıyorsanız, bu otomatik yükleyici daha da hızlı çalışacaktır.
<?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
. Bu çözümün işe yaramasının nedeni bu değil. Aynı şekilde kolayca yapabilirsiniz:use Person\Barnes\David\Class1;
(eşdeğerdiruse Person\Barnes\David\Class1 as Class1;
).