Да. Как уже отмечали другие, разделение элементов на включаемые файлы, которые загружаются условно, - единственный способ сократить это. Начиная с Drupal 6, стало возможным перемещать функции theme_whwhat (), а также обратные вызовы страницы hook_menu (), в отдельные включаемые файлы. Drupal автоматически загрузит их, когда они понадобятся, без каких-либо явных манипуляций с require_once ().
Подробнее см. В документации hook_menu () и hook_theme () .
Также важно отметить, что если вы используете кэш кода операции, такой как APC, разделение элементов на кучу условных включений на самом деле хуже - APC может выполнять весь анализ и компиляцию PHP источник за один раз и сохранить его между запросами. Условное разделение всего лишь дает ему несколько дискретных «кодовых баз» для компиляции в зависимости от того, что делается.
В Drupal 7, находящемся в стадии разработки, был добавлен общий Реестр кода , позволяющий разбить любую реализацию хука на отдельный включаемый файл. Однако накладные расходы на управление этим внутренним кешем функций и местоположений .inc и их загрузку на лету съедают прирост производительности при уменьшении для анализа кодовой базы. Единственная реальная выгода - уменьшенное использование памяти для тех на общих хостах с жесткими ограничениями памяти на 12-16 мегабайт; неясно, дойдут ли эти изменения до финальной версии Drupal 7, учитывая компромиссы.
Результат: в Drupal 6, разделил колбэки меню, которые создают пользовательские страницы в отдельный файл .inc, и он будет загружен только при построении этих страниц. Сделайте то же самое с любыми функциями темы. И если вы используете кэш опкодов , такой как APC, помните, что ваши отдельные файлы .inc хороши только для организационных целей - они не дадут вам никакого повышения производительности.