Автор PHP-DI здесь, вы устанавливаете его с Composer?
Если да, то настройте свою папку в composer.json
и просто введите vendor/autoload.php
в свой скрипт. Затем вы можете начать использовать контейнер, он должен просто работать. Например:
$container = \DI\ContainerBuilder::buildDevContainer();
$yourObject = $container->get('YourClass');
Теперь быть в курсе, что этот пример инъекции не зависимости (как вы можете видеть, что нет инъекции ничего здесь). Когда вы получаете объект из контейнера ($container->get()
), вы связываете свой код с контейнером.
Это нормально, чтобы сделать это в корне приложения, например. для создания экземпляров ваших контроллеров (или любых других корневых объектов, которые вы хотите использовать). Но зависимости контроллеров следует вводить, а не извлекать из контейнера (если вы хотите сделать инъекцию зависимостей).
Кстати, есть чат, если вы хотите обсудить больше тем: https://gitter.im/mnapoli/PHP-DI и, конечно, the documentation.
Вы не говорите 'DI', а хотите' _autoload'? Кроме того, пожалуйста, не используйте 'DI', если вам это действительно не нужно. http://www.tonymarston.net/php-mysql/dependency-injection-is-evil.html – Forien
@Forien - Я уже знаю об автозагрузке, и я использую его, но это действительно поможет, поскольку мои классы не позволяют многого гибкости, которая была бы адекватно DI –
Действительно @Forien, вы цитируете Марстона? ¯ \ _ (ツ) _/¯ –