Требовать несколько файлов - PullRequest
8 голосов
/ 10 июля 2011

Я создаю приложение PHP, которое использует меню выбора для создания шаблонов электронной почты.Шаблоны разбиты на многократно используемые части (каждый представляет собой отдельный HTML-файл).Есть ли простой способ требовать несколько файлов с одним выражением?(мой PHP действительно ржавый ...)

По сути, я хочу сделать что-то вроде:

function require_multi() {
    require_once($File1);
    require_once($File2);
    require_once($File3);
    require_once($File4);
}

Ответы [ 3 ]

13 голосов
/ 10 июля 2011

Ну, вы можете превратить его в функцию:

function require_multi($files) {
    $files = func_get_args();
    foreach($files as $file)
        require_once($file);
}

Использовать так:

require_multi("one.php", "two.php", ..);

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

6 голосов
/ 10 июля 2011

Кредит Том Хей из как требовать все файлы в папке? :

$files = glob( $dir . '/*.php' );
foreach ( $files as $file )
    require( $file );

Сохраните все необходимые файлы в $dir, а вышеприведенный код сделает все остальное.

1 голос
/ 23 января 2012

РЕДАКТИРОВАТЬ:

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

public function include_all_files($root) {
    $d = new RecursiveDirectoryIterator($root);
    foreach (new RecursiveIteratorIterator($d) as $file => $f) {
        $ext = pathinfo($f, PATHINFO_EXTENSION);
        if ($ext == 'php' || $ext == 'inc')
            include_once ($file); // or require(), require_once(), include_once()
    }
}

include_all_files('./lib');
...