Zend Autoloader - 从目录加载文件

时间:2011-08-22 08:39:01

标签: php zend-framework zend-autoloader

我想知道是否有办法使用Zend Autoloader加载特定目录和子目录中的所有文件?
我正在尝试在Zend旁边包含其他库,例如JSTree。

2 个答案:

答案 0 :(得分:2)

更新

刚刚找到SPL的RecursiveDirectoryIterator。这可能是一个更好的选择。


Zend Framework没有特定的东西,但你可以看一下PHP SPL的DirectoryIterator

您可以像这样使用它:( 未经测试

class My_DirectoryIterator extends DirectoryIterator
{
    /**
     * Load every file in the directory and it's sub directories
     * It might be a good idea to put a limit on subdirectory iteration so you don't disappear down a black hole...
     * @return void
     */
    public function loadRecursive()
    {
        foreach ($this as $file) {
            if ($file->isDir() || $file->isLink()) {
                $iterator = new self($file->getPathName());
                $iterator->loadRecursive();
            } elseif ($file->isFile()) {
                // Might want to check for .php extension or something first
                require_once $file->getPathName();
            }
        }
    }
}

// Load them all
$iterator = new My_DirectoryIterator('/path/to/parent/directory');
$iterator->loadRecursive();

答案 1 :(得分:0)

如果这些库是PSR-0编译的,你可以使用

Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);

这将使Zend加载任何未知的类(在Some / Class.php中查找Some_Class)。