Рекомендации: где разместить необходимые файлы - PullRequest
2 голосов
/ 07 октября 2008

Я работаю с рядом вспомогательных классов, которые аффективно имеют набор статических функций, позволяющих контроллерам и действиям иметь доступ к частям общей функциональности.

Проблема заключается в том, что эти файлы использовались в качестве полигона для любой функциональности, которая требуется для модулей / приложений, и в результате они имеют размер> 3 тыс. Строк, а наверху они имеют около 50 require_once декларация!

Очевидно, что если представление в приложении не хочет использовать небольшую часть функциональности, доступной от этих помощников, оно наследует все необходимые файлы, и вы в конечном итоге раздуете свое приложение.

Если бы я включал файлы по мере необходимости, я мог бы в конечном итоге совершить многочисленные require_once обращения к необходимым файлам, которые имеют свои собственные издержки (в сочетании с частотой), когда мне нужно использовать большое количество функциональность, доступная из этих вспомогательных файлов.

Итак, по сути, мой вопрос: где нарушен баланс и есть ли лучшая практика, которую можно использовать?

Спасибо

Flunga

Ответы [ 2 ]

9 голосов
/ 07 октября 2008

Взгляните на функцию автозагрузки . это сократит все ваши включения вплоть до того, что требуется, когда это необходимо.

1 голос
/ 07 октября 2008

Ваш лучший выбор при построении таких зависимостей, чтобы оставаться "ациклическим". Вы можете иметь функциональность более высокого уровня, «требуя» функциональности низкого уровня, в которой она нуждается, но проектируйте ее так, чтобы вещи не указывали друг на друга.

Таким образом, разбив его на достаточно маленькие блоки, вы сможете гарантировать, что, когда вам не нужны все модули, будет задействовано только минимальное количество зависимостей.

Я, конечно, не знаю ни одной причины "требовать" кода, который вы не собираетесь использовать на странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...