Zend Autoloader - загрузка файлов из каталога - PullRequest
0 голосов
/ 22 августа 2011

Мне было интересно, есть ли способ использовать Zend Autoloader для загрузки всех файлов из определенного каталога и подкаталогов?Я пытаюсь включить другие библиотеки помимо Zend, такие как JSTree.

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Обновление

Только что найдены 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();
0 голосов
/ 17 сентября 2012

Если эти библиотеки соответствуют PSR-0, вы можете использовать

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

Это заставит Zend загружать любые неизвестные классы (ищет Some_Class в Some / Class.php).

...