Задать вопрос

Как подключить doctrine к zend expressive?

пытаюсь прикрутить доктрину к зенду. Вот конфиги
doctrine.global.php
return [
    'doctrine' => [
        'driver' => [
            'orm_default' => [
                'class' => \Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain::class,
                'drivers' => [],
            ],
        ],
    ],
];

doctrine.local.php
return [
    'doctrine' => [
        'connection' => [
            'orm_default' => [
                'params' => [
                    'url' => 'mysql://project:project@127.0.0.1/project',
                ],
            ],
        ],
    ],
];

Подключена инверсия
return [
    'dependencies' => [
        'abstract_factories' => [
            \Zend\ServiceManager\AbstractFactory\ReflectionBasedAbstractFactory::class
        ],
];


выдает ошибку
root@somehost:/application# php /application/vendor/doctrine/orm/bin/doctrine
PHP Fatal error: Uncaught Zend\ServiceManager\Exception\ServiceNotFoundException: Unable to create service "Doctrine\DBAL\Connection"; unable to resolve parameter "driver" using type hint "Doctrine\DBAL\Driver" in /application/vendor/zendframework/zend-servicemanager/src/AbstractFactory/ReflectionBasedAbstractFactory.php:226
  • Вопрос задан
  • 303 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@de1vin Автор вопроса
оказалось все просто, нужно подключить фабрику ContainerInteropDoctrine
https://github.com/DASPRiD/container-interop-doctrine
в dependencies.global.php
'factories'  => [
            \Doctrine\ORM\EntityManager::class  => \ContainerInteropDoctrine\EntityManagerFactory::class,
        ],
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@novrm
Как-то так: https://github.com/doctrine/DoctrineORMModule#conn...
<?php
return [
    'doctrine' => [
        'connection' => [
            'orm_default' => [
                'driverClass' => \Doctrine\DBAL\Driver\PDOMySql\Driver::class,
                'params' => [
                    'host'     => 'localhost',
                    'port'     => '3306',
                    'user'     => 'username',
                    'password' => 'password',
                    'dbname'   => 'database',
                    'driverOptions' => [
                        \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'',
                    ],
                ],
            ],
        ],
    ],
];
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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