@TANK_IST

Как инициализировать symfony dependency injection без использования symfony?

Использую в разработке компоненты symfony.
Хочу чтобы как в symfony можно было вызывать компоненты ($this->container->get('router'))
Нужны router, doctrine, session и тд.

Спасибо.
  • Вопрос задан
  • 383 просмотра
Решения вопроса 1
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
Кажется, у вас тут ошибка:
$container
        ->register('doctrine.setup')
        ->addArgument(array(
            array(APP_DIR."/Model"),
            APP_DEV,
            null,
            null,
            false
        ))
        ->setFactory(array(Doctrine\ORM\Tools\Setup::class, 'createAnnotationMetadataConfiguration'));

А конкретно в вызове ->addArgument(). Смотрите сюда. Вам нужно передавать в отдельных вызовах каждый аргумент. То есть, вместо:
Переводя ваш код на инициациализацию вручную, вы делаете:
$config = Setup::createAnnotationMetadataConfiguration([[APP_DIR."/Model"], APP_DEV, null, null, false]);

вместо:
$config = Setup::createAnnotationMetadataConfiguration([APP_DIR."/Model"], APP_DEV, null, null, false);

То есть, вы передаёте все аргументы в виде массива в первый аргумент. Отсюда у вас и "Array to string conversion", и всё остальное. Пользовались бы вы отладчиком - нашли бы это сами.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GTRxShock
@GTRxShock
SA
svn.symfony-project.com/components/dependency_inje...
svn.symfony-project.com/components/dependency_inje...

так же можете посмотреть сторонние di контейнеры, либо вообще ознакомиться с https://silex.symfony.com/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы