Я работаю с рядом «вспомогательных» классов, которые фактически имеют кучу статических функций, которые позволяют контроллерам и действиям иметь доступ к фрагментам общих функций.
Проблема в том, что эти файлы использовались в качестве свалки для любых функций, которые требуются для модулей / приложений, и в результате они имеют размер> 3k строк, а вверху у них около 50 объявлений require_once!
Очевидно, что если представление в приложении не будет использовать небольшую часть функций, доступных от этих помощников, оно наследует все необходимые файлы, и вы в конечном итоге раздуваете свое приложение.
Если бы мне пришлось включать файлы по мере необходимости, я мог бы в конечном итоге сделать многочисленные вызовы require_once для требуемых файлов, которые имеют свои собственные накладные расходы (в сочетании с частотой), когда мне нужно использовать большой объем функций, доступных из этих файлов. вспомогательные файлы.
Итак, по сути, мой вопрос заключается в том, где достигается баланс и есть ли лучшая практика, которую можно использовать?
Спасибо,
Флунга






Взгляните на функция автозагрузки. это сократит все ваши включения до того, что требуется, когда это необходимо.
Лучше всего при построении таких зависимостей оставаться «ациклическими». Вы можете сделать так, чтобы функциональность более высокого уровня «требовала» функциональности низкого уровня, которая необходима для работы, но спроектировала ее таким образом, чтобы вещи не указывали друг на друга.
Таким образом, разбив его на достаточно маленькие блоки, вы сможете гарантировать, что, когда вам не нужны все модули, будет задействовано только минимальное количество зависимостей.
Я, конечно, не знаю, зачем «требовать» код, который вы не собираетесь использовать на странице.
Спасибо, левик. Приложение настолько велико, что я считаю, что будет сложнее разбить и перестроить, предложенное выше предложение автоматической загрузки - это то, что я использую, но я отмечу ваш ответ, так как это хороший совет, который я всегда стараюсь упражняться. Спасибо.
Спасибо большое. Это именно то, что мне нужно, и поскольку помощники возникли из реализации PHP4, это было то, с чем я застрял тогда, но не сейчас. :) Еще раз спасибо