Допустим, у меня есть серверная часть, работающая в настроенной среде PHP (без Laravel и Symfony). Он используется в качестве сервера API большую часть времени. Но раз в день мне нужно отправлять письма. Допустим, для этого я использую специальные инструменты: Twig для создания тел писем и PHPMailer для их отправки. Мне не нужно ни то, ни другое, чтобы отвечать на входящие запросы переднего плана.
Мой вопрос: могу ли я попросить Composer (который я использую в качестве менеджера зависимостей) исключить Twig и PHPMailer при компиляции кода для ответа на внешние запросы?
Очевидно, что приведенный здесь пример сэкономил бы мне доли секунд и часть оперативной памяти, но что если у меня есть другие зависимости, которые также используются только для других целей?
Очевидно, что приведенный здесь пример сэкономит мне доли секунды и доли оперативной памяти.
Это на самом деле не спасет вас ничего. Автозагрузчик Composer загружает класс только по запросу. Если вы никогда не используете Twig или PHPMailer в своем запросе веб-интерфейса, он никогда не загрузит его, поэтому ОЗУ или ЦП не будут использоваться.
В основном это уже работает так, как вы хотели бы.
Я думаю, что вы можете пересмотреть структуру вашего приложения. В случае, если у вас есть 2 независимые части, они могут быть разделены на 2 приложения php с их собственным composer.json. Общий код может быть загружен как зависимость.
В любом случае, наличие неиспользуемых зависимостей не является большой проблемой и практически не влияет на производительность. Таким образом, технически цель, которую вы хотите достичь, заключается в большей степени в чистоте кода, а не в оптимизации производительности.