Загрузка только определенных зависимостей в PHP с помощью Composer

Допустим, у меня есть серверная часть, работающая в настроенной среде PHP (без Laravel и Symfony). Он используется в качестве сервера API большую часть времени. Но раз в день мне нужно отправлять письма. Допустим, для этого я использую специальные инструменты: Twig для создания тел писем и PHPMailer для их отправки. Мне не нужно ни то, ни другое, чтобы отвечать на входящие запросы переднего плана.

Мой вопрос: могу ли я попросить Composer (который я использую в качестве менеджера зависимостей) исключить Twig и PHPMailer при компиляции кода для ответа на внешние запросы?

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

1

Решение

Очевидно, что приведенный здесь пример сэкономит мне доли секунды и доли оперативной памяти.

Это на самом деле не спасет вас ничего. Автозагрузчик Composer загружает класс только по запросу. Если вы никогда не используете Twig или PHPMailer в своем запросе веб-интерфейса, он никогда не загрузит его, поэтому ОЗУ или ЦП не будут использоваться.

В основном это уже работает так, как вы хотели бы.

2

Другие решения

Я думаю, что вы можете пересмотреть структуру вашего приложения. В случае, если у вас есть 2 независимые части, они могут быть разделены на 2 приложения php с их собственным composer.json. Общий код может быть загружен как зависимость.

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

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector