Сначала немного фона. Компания, в которой я работаю, использует массивную библиотеку функций / классов, которая включается на каждой странице. Тысячи и тысячи строк функций, 90% которых, вероятно, даже не будут вызываться на странице.
В попытке немного снизить нагрузку на сервер я экспериментировал с более разумными настройками библиотеки. Для этого я разбил весь файл на классифицированные библиотечные файлы (например, sql.functions.php, date.functions.php и другие).
К сожалению, включение каждого файла на каждой странице не помогает вообще, а выборочное включение файлов практически невозможно и очень подвержено ошибкам.
Что мне нужно, так это настройка, похожая на функцию PHP ___autoload()
, которая автоматически ищет файлы с определенными именами в случае запуска неизвестного класса в попытке найти его.
<?php
function ___autoload($class_name) {
require_once($class_name.'.class.php');
}
?>
Однако эта функция не работает для вызовов функций, только для классов.
Есть ли способ заставить PHP при вызове неопределенной функции (т.е. html_insert_button();
) автоматически искать и включать библиотеку именованных функций?
(В указанном выше случае необходимо будет загрузить html_functions.php
, поскольку он имеет префикс функции)