Menggunakan memiliki gotcha, meskipun sejauh ini merupakan metode tercepat, ia juga mengharapkan semua nama file Anda menjadi huruf kecil.
spl_autoload_extensions(".php");
spl_autoload_register();
Sebagai contoh:
File yang berisi kelas SomeSuperClass perlu diberi nama somesuperclass.php, ini adalah gotcha saat menggunakan sistem file yang peka huruf besar kecil seperti Linux, jika file Anda bernama SomeSuperClass.php tetapi bukan masalah di Windows.
Penggunaan __autoload dalam kode Anda mungkin masih berfungsi dengan versi PHP saat ini, tetapi fitur ini diharapkan tidak digunakan lagi dan akhirnya dihapus di masa mendatang.
Jadi pilihan apa yang tersisa:
Versi ini akan bekerja dengan PHP 5.3 ke atas dan memungkinkan nama file SomeSuperClass.php dan somesuperclass.php. Jika Anda menggunakan 5.3.2 dan yang lebih baru, pemuat otomatis ini akan bekerja lebih cepat.
<?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
. Itu tidak mengapa solusi ini berhasil. Anda dapat dengan mudah melakukan:use Person\Barnes\David\Class1;
(yang setara denganuse Person\Barnes\David\Class1 as Class1;
).