我正在从头开始开发一个新应用程序,我需要递归地自动加载文件。但是,我需要使用 Zend Framework 之类的命名空间。
例如,LibraryName_Http_Request
将加载LibraryName/Http/Request.php
文件。无论我尝试过什么,LibraryName_Http_Request
如果我命名文件,我只能使用 class LibraryName_Http_Request.php
。
我不知道如何更改我的代码,以便我可以以相同的 Zend 方式加载类文件......
这是我的代码:
class Autoloader
{
public function __construct()
{
spl_autoload_register( array( $this, 'autoload' ) );
}
public function autoload( $class )
{
$iterator = new RecursiveDirectoryIterator( LIBRARY_PATH );
foreach( new RecursiveIteratorIterator( $iterator ) as $file=>$meta ) {
if( ( $class . '.php' ) === $meta->getFileName() ) {
if( file_exists( $file ) ) {
require_once $file;
}
break;
}
}
unset( $iterator, $file );
}
}