Может ли приложение PHP иметь слишком много функций? Выполняет ли большое количество PHP функции памяти и ресурсов? Моя тема WordPress в разработке имеет много функций (вероятно, более 100 к тому времени, когда я закончил), и я обеспокоен тем, что у меня может быть слишком много.
Я бы не беспокоился о 100 функциях. Это очень мало функций.
Глобальные функции и методы скомпилированы, сохранены в памяти и индексированы в хэш-таблице (за исключением кэшированных запросов, реализованных в последнее время). У вас не будет ухудшения производительности при вызове функций по мере роста числа функций, поскольку доступ к хеш-таблице выполняется в среднем в постоянное время.
Тем не менее, будет больше лишних разбора скриптов и, если вы на самом деле вызовите все эти функции, скомпилируйте их. Это не проблема, если вы используете кеш-код операции. Также будет больше накладных расходов на память, но, как правило, память не является проблемой на веб-серверах корпоративного уровня, где более целесообразно стараться как можно быстрее обслуживать запросы, не заботясь об этой памяти.
Есть также стилистические проблемы. Если у вас слишком много глобальных функций, подумайте:
В конце концов, беспокоиться об этом, только если вы профилируете свое приложение и находите вызовы функций узким местом и определениями функций процессора узким местом памяти.
Даже если многие функции привели к увеличению потребления памяти, я бы посоветовал вам использовать их в любом случае. Четкая структура гораздо важнее производительности.
Производительность может быть улучшена путем бросания на нее аппаратного обеспечения , приложение с плохой структурой быстро становится очень сложно поддерживать.
Кстати: 100 функций – ничто!
100 функций не о чем беспокоиться. Если ваш код медленный, вы должны его профилировать, чтобы явно найти медленные части.
Помните, преждевременная оптимизация зла
Нет, не может. На самом деле, хорошо иметь много функций, потому что это означает, что вы разделили свой код на более управляемые части. Хорошее правило состоит в том, чтобы сохранить ваши функции небольшими, заставить их сделать только одно. О, и не забудьте назвать свои функции, чтобы имя функции хорошо описывало, что делает функция.
Наличие большого количества методов приведет к небольшим накладным расходам во время выполнения, но это настолько незначительно по сравнению с преимуществами, которые вы получаете от структурированного кода, поэтому я бы не стал беспокоиться об этом.
Просто сделайте свой код, чтобы сделать это. Не заботьтесь о вашей функции.
PHP имеет более 3000 функций в своем ядре, поэтому не беспокойтесь о том, чтобы добавить слишком много.
Я думаю, да, проект может иметь слишком много функций. Я не знаю, как вы настроили свой проект, но похоже, что у вас есть библиотеки функций. Возможно, вы захотите рассмотреть объектно-ориентированную разработку в будущем. Это позволяет вам инкапсулировать функциональность в объекты. Поэтому объект содержит функции, и они не видны другим объектам (если вы не хотите, чтобы они были). Это помогает снизить загрязнение API.
Для вас проблемы с памятью – я тоже об этом беспокоился, НЕ. Хорошая практика программирования важнее скорости. Вы даже не заметите разницу на веб-сервере. Всегда поддерживайте техническую поддержку по скорости!