CrewCut
@CrewCut
Коплю силы на переезд в тропики

Что эффективнее — один большой php файл или много маленьких в шаблонах?

Есть интернет-магазин, у которого в каталоге много разного полезного кода. Что будет быстрее обрабатываться, что правильнее - запихать все в один файл или разбить на несколько и вызывать по необходимости?

Грубый пример: есть блок баннеров, который актуален только для одной категории.
Его можно выводить прям в файле:
if( $cat = 'someCat' ) :
 echo '<img src="banner.jpg">';
 echo '<img src="banner2.jpg">';
 echo '<img src="banner3.jpg">';
 echo '<img src="banner4.jpg">';
endif;

Или можно подключать файл с баннерами:
if( $cat = 'someCat' ) :
 get_template_part( 'banners.php' );
endif;


Какой из двух вариантов адекватнее, если таких участков кода для одной страницы довольно много?
  • Вопрос задан
  • 686 просмотров
Решения вопроса 1
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Эффективнее провести нагрузочное тестирование с логированием времени обработки запросов и ключевых этапов обработки каждого запроса. Затем по итогам анализа логов выявить наиболее проблемные места и исправить недочеты, ошибки и прочее.
А еще надо сразу грамотно делать декомпозицию проекта и грамотно проектировать архитектуру системы. Кроме того, есть еще такие штуки как БД и веб-сервер/прокси/балансер и т.п., которые вносят свои задержки в обработку запроса. Еще есть очень замечательная штука, которая называется "кэширование", с которой нет необходимости каждый раз загружать данные с диска. А так же еще куча других способов ускорения PHP.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
iamd503
@iamd503
Верстальщик
Лучше разбить
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Что будет быстрее обрабатываться,

Одинаково
К "серверной оптимизации" такая ерунда не имеет ни малейшего отношения.

что правильнее

Зависит от конкретной задачи

Баннеры, на мой взгляд, должны показываться отдельным сервисом, а не прописываться прямо в шаблоне.
Вносить правки в репозиторий, чтобы поменять баннер на странице - это дикость
Ответ написан
Комментировать
@procode
Разработчик
Лучше подключать файл с баннерами

:-)

Хотя если основной файл маленький - можно и в нем оставить.

Это не принципиально.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы