@Hellek
Люблю говорить и слышать суть

Один автозагрузчик composer (autoload.php) в index файле или несколько разбросанных по проекту?

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

Подключаем autoloader.php в индексном файле.
+ забываем об инклудах новых библитек навсегда
- видимо при каждом простом запросе, где вообще не нужны эти библиотеки получаем чрезмерную нагрузку на интерпретатор, в связи подключением мегабайт кода (считайте, если у нас либы весят 1МБ, то каждый запрос на время обработки отжирает 1МБ памяти, довольно ощутимо)

Создаем несколько composer.json разбросанных по проекту и подключаем зависимости в зависимости от функционала конкретного модуля
+ в коде подключено только то, что нужно на момент использования этой части скрипта
- вероятно появляется геморрой с продумыванием архитектуры и в этом плане. Будет дублирование зависимостей, возможно будет дублирование при подключении через 'use {namespace}'

Собственно, есть ли какие-то best practices по этому поводу?
  • Вопрос задан
  • 634 просмотра
Решения вопроса 2
Как бы там 4 метода автозагрузки. Описаный вами это files так работает, Берет и все инклюдит что вы ему там прописали.
В других способах автолоад сработает только тогда когда это потребуется. Пройдитесь по скрипту дебагом сразу поймёте.
Ответ написан
@shagguboy
- видимо при каждом простом запросе, где вообще не нужны эти библиотеки получаем чрезмерную нагрузку на интерпретатор, в связи подключением мегабайт кода (считайте, если у нас либы весят 1МБ, то каждый запрос на время обработки отжирает 1МБ памяти, довольно ощутимо)


автолоад так не работает. он грузит класс только когда к нему идет обращение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы