Обновление: Из вашего комментария к Гордону я вижу, что вы используете Drupal: этот метод там не работает, потому что Drupal уже сильно объектно-ориентирован.Здесь описано использование механизма автозагрузки для основанного на функциях проекта с использованием статических классов.
Как говорит Гордон, это сэкономит память только для действительно невероятно огромных функций.Однако, по моему опыту, загрузка включений в память занимает гораздо больше места, чем точное количество байтов, необходимое для хранения кода.Я не эксперт по внутренним PHP, но я предполагаю, что код анализируется или, по крайней мере, предварительно обрабатывается в любом случае.
Предполагая, что ваше PHP-приложение полностью основано на функциях без ООП, вам приходит в голову одна идея, которую вы можете использовать для разделения ваших включений, - это поместить свои функции в классы и использовать механизм автозагрузчика:
class maintenance_functions
{
public static function xyz() { ................ }
и начните вызывать их статически:
maintenance_functions::xyz();
один класс будет занимать один файл.
Группировать все редко используемые функции в отдельные файлы.
Тогда вы можете использовать механизм Autoloading .Это автоматически загрузит необходимые классы в тот момент, когда они нужны.Если я, например, позвоню
datamining_functions::xyz();
, автозагрузчик найдет файл, содержащий datamining_functions
, и включит его.Это устраняет все хлопоты 'require ()' и позволяет вам сконцентрироваться на том, как наиболее эффективно сгруппировать ваши функции.
Это не настоящий переход к ООП: мы просто используем конструкции классов для группировки функций, чтобычтобы иметь возможность использовать автозагрузчик.Должна быть предусмотрена возможность переноса функций в такие классы без необходимости серьезных переписываний.