0

我想知道是否有任何方法可以使用 Zend Autoloader 从特定目录和子目录加载所有文件?
我正在尝试包含 Zend 之外的其他库,例如 JSTree。

4

2 回答 2

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();
于 2011-08-22T09:48:11.650 回答
0

如果这些库是 PSR-0 兼容的,您可以使用

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

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

于 2012-09-16T23:40:30.157 回答