Как использовать Auryn для DI в «праве» путь?

Я пишу небольшое приложение с нуля, и я хотел использовать несколько пакетов от Packagist. Для DI я выбрал Auryn.

Теперь, первое, что я узнал об Auryn, это то, что он старается избегать того, чтобы быть контейнером зависимостей, и в документации явно написано, что вы не должны использовать экземпляр Auryn как контейнер, пропуская его через различные классы. вашего приложения.

Я в порядке с этим, но, поскольку у меня есть «основной» класс в качестве оболочки для всей основы приложения, я думаю, что в конструкторе этого основного класса я должен иметь только зависимость объекта Injector ( Это основной объект Auryin), тогда в конструкторе класса я должен связать все, чтобы быть готовым к DI и отражению.

Другой путь — не использовать основной класс, а просто использовать чистый процедурный код в моем индексном файле, соединяя все вместе с Auryn.

Какой совет вы считаете лучшим способом для продолжения?

0

Решение

Идея внедрения зависимости заключается в том, чтобы собрать всю информацию о том, как ваши различные классы «соединены» в одном месте (ваш класс DI-контейнера / файл конфигурации DI), вместо того, чтобы распространять и дублировать их по всему коду. Я предполагаю, что ваш «Main» -класс создается только один раз в вашем Index.php, поэтому не имеет значения, передаете ли вы экземпляр Auryn конструктору Main или используете Auryn, чтобы получить экземпляр Main.

1

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

Других решений пока нет …