Я создаю приложение PHP, которое использует меню выбора для создания шаблонов электронной почты. Шаблоны разбиты на части многократного использования (каждый из них представляет собой отдельный html-файл). Есть ли простой способ потребовать несколько файлов с одним выражением? (мой PHP действительно ржавый …)
По сути, я хочу сделать что-то вроде:
function require_multi() { require_once($File1); require_once($File2); require_once($File3); require_once($File4); }
Ну, вы можете превратить его в функцию:
function require_multi($files) { $files = func_get_args(); foreach($files as $file) require_once($file); }
Используйте следующее:
require_multi("one.php", "two.php", ..);
Однако, если вы включаете классы, лучшим решением будет использование автоматической загрузки .
Поблагодарите Том Хейг за то, как требовать все файлы в папке? :
$files = glob( $dir . '/*.php' ); foreach ( $files as $file ) require( $file );
Сохраните все необходимые файлы в $dir
и приведенный выше код сделает все остальное.
РЕДАКТИРОВАТЬ:
Поскольку вы хотите потребовать или включить несколько файлов, вы можете использовать этот рекурсивный алгоритм для включения файлов в указанную папку. Папка – это корень, который запускает итератор. Поскольку алгоритм рекурсивный, он будет автоматически перемещаться по всем последующим папкам и включать эти файлы.
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');