Как включить () все файлы PHP из каталога? - PullRequest
217 голосов
/ 01 марта 2009

Очень быстрый вопрос n00b, в PHP я могу включить каталог скриптов.

т.е. Вместо:

include('classes/Class1.php');
include('classes/Class2.php');

есть что-то вроде:

include('classes/*');

Не удалось найти хороший способ включить коллекцию из примерно 10 подклассов для определенного класса.

Ответы [ 13 ]

0 голосов
/ 31 декабря 2013

Если вы хотите включить несколько классов без необходимости определения каждого класса сразу, вы можете использовать:

$directories = array(
            'system/',
            'system/db/',
            'system/common/'
);
foreach ($directories as $directory) {
    foreach(glob($directory . "*.php") as $class) {
        include_once $class;
    }
}

Таким образом, вы можете просто определить класс в php-файле, содержащем класс, а не весь список $thisclass = new thisclass();

Что касается того, насколько хорошо он обрабатывает все файлы? Я не уверен, что это может привести к небольшому снижению скорости.

0 голосов
/ 04 сентября 2012

Не пишите функцию () для включения файлов в каталог. Вы можете потерять переменные области видимости и, возможно, придется использовать «глобальный». Просто зациклите файлы.

Кроме того, вы можете столкнуться с трудностями, когда включенный файл имеет имя класса, которое будет распространяться на другой класс, определенный в другом файле - который еще не включен. Так что будь осторожен.

0 голосов
/ 01 марта 2009

Я предлагаю вам использовать функцию readdir () , а затем выполнить цикл и включить файлы (см. 1-й пример на этой странице).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...