компосер добавил какой-то пакет обычный. Как его к проекту подключить? Надо в бандлы писать его, в сервисах описывать или как?
смотря какие пакты, некоторые как бандлы, некоторые как простые либы вызывается класс оператором new
Есть вариант описать в di конфиге классы из пакета как сервисы. Это позволит избежать инстанцирования этих классов через new в коде вашего проекта, что повысит качество кода и позволит мокать зависимости в тестах
если пакет в конструкторе требует аргументы, то это вызывает большой геморой для описи в конфиге, если тебе он нужен в 2-3 местах - это того не стоит, и нет смысла его в карту сервисов добавлять тесты нормально пишутся и инстансами, сами пакеты имеют собственные тесты, и нет смысла их тестировать повторно, тестишь только результат и в какой момент вдруг стало инициализация классов в коде признаком низкого уровня? dto или сущности инициировать тоже через di?
А якщо сторонній пакет має сайдефекти? В тестах їх не тестять, а мокають, що вони лише дали потрібний результат. Якщо ж ти робиш через new, то твої тести починають ходити на сторонні апі, писати в БД чи на фс і тому подібне. Ось це справді геморой
ну опять таки, смотря какой пакет, если пакет от неизвестного Васи, то я бы и не стал такой пакет ставить
Причому тут Вася? Ось наприклад амазон. Амазон то невідомий Вася? А його сдк для роботи з AWS? Ти будеш створювати через new сервіси цього сдк?
Обсуждают сегодня