Я просмотрел stackoverflow и до сих пор не могу найти ответ на свой вопрос.
Я использую свою пользовательскую среду для веб-сайта, и на данный момент я использую включение в свой индекс, котороеPHP, чтобы загрузить все классы, которые использует фреймворк.
Но для своих объектов базы данных я использую небольшой скрипт для включения всех файлов, потому что для каждой таблицы есть много слоев класса.(каждая таблица содержит как минимум 4 файла)
Вот фрагмент, который я сейчас использую для их загрузки.
// the constants are the directories to look for files
$__dirs = array(CORE_PATH,CX_SETTINGS,BASE_MODEL,MODEL,CUSTOM_MODEL,CONTROLLER,PLUG_IN,HELPER_FUNCTIONS);
$__accepted_ext = '.php';
foreach ($__dirs as $dir) {
if ($handle = opendir($dir)) {
// peer files first
while (false !== ($file = readdir($handle))) {
if ((strpos($file,$__accepted_ext) !== false)){
require_once($dir.DS.$file);
//echo "$dir : $file : works \n"; // debug
}
}
closedir($handle);
}
}
Этот метод будет сканировать каждый каталог, который я предоставляю, и включать все мои файлы php.
Моя проблема в том, что это загружает каждый файл моей платформы, независимо от того, использую я их или нет.Поэтому я предполагаю, что это не лучший способ справиться с этим, и что я могу создавать ненужные накладные расходы.
Теперь я читаю о функции __autoload () и считаю ее своей альтернативой.Но стоит ли беспокоиться об этом (включая даже файлы, которые я не буду использовать)?Какие методы используются в настоящее время для решения этой проблемы?
РЕДАКТИРОВАТЬ:
ПРИМЕЧАНИЕ: все включенные файлы являются классами, а не файлы, включенные по ошибке.пример: я мог бы загрузить класс комментариев, который действителен, но не используется на всех моих страницах.так что это в некотором роде не нужно