2013-12-17 2 views
1

Должен ли я пытаться сохранить все вспомогательные функции в одном файле (скажем, все в functions.php) за счет чтения ненужных функций или хранить функции в отдельных файлах, где я буду включать только файлы с необходимыми функциями, за счет накладных расходов для включения большего количества файлов? Как большой объем накладных расходов должен включать отдельные вспомогательные файлы? Я знаю, что для изображений, таких как значки, быстрее добавлять значки вместе в 1 изображение, но я не уверен, что это применимо и здесь.Сохранять функции в том же вспомогательном файле или отдельных файлах?

+0

Если вы хотите хранить свои функции отдельно друг от друга, попробуйте сгруппировать их (по какой-то категории). Например: вспомогательные функции, связанные с файловой системой, функции, которые изменяют строки, функции, которые выполняют вычисления, и т. Д. Другой принцип заключается в том, что, когда вы нажимаете на стену, подобную той, которую вы, кажется, бьете, лучше всего рассмотреть другой шаблон дизайна. В вашем случае я могу сказать, что рассмотрение более объективно-ориентированного подхода может служить вам хорошо. – SquareCat

ответ

2

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

Если вы также используете PHP 5.5+ (или более старую версию с расширением, подобным opcache), код будет даже предварительно скомпилирован, что еще больше снизит накладные расходы.

Вообще-то еще - как только вы начинаете беспокоиться о синтаксическом разборе кода, вы обычно виновны в premature optimization. В мире, где почти все веб-серверы имеют четырехъядерные процессоры с гиперпотоковыми многогигагерцами и поддерживаются хранилищем RAID SATA, загрузка дополнительного файла не будет реальной проблемой. Найдите настоящие узкие места, когда весь код будет выполнен, и проведите там время оптимизации.

Смежные вопросы