Можно ли установить модуль Doctrine Orm с приложением ZF3 скелет?
Мои знания php composer не более чем основные, но... Я скачал и установил скелетное приложение MVC Zend Framework 3.0.0dev и хотел узнать, могу ли я установить вместе с ним модуль Doctrine ORM. composer require doctrine/doctrine-orm-module
жалуется на
Problem 1
- Installation request for doctrine/doctrine-orm-module ^0.10.0 -> satisfiable by doctrine/doctrine-orm-module[0.10.0].
- doctrine/doctrine-orm-module 0.10.0 requires zendframework/zend-mvc ~2.3 -> satisfiable by zendframework/zend-mvc[2.3.0, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.3.6, 2.3.7, 2.3.8, 2.3.9, 2.4.0, 2.4.0rc1, 2.4.0rc2, 2.4.0rc3, 2.4.0rc4, 2.4.0rc5, 2.4.0rc6, 2.4.0rc7, 2.4.1, 2.4.10, 2.4.2, 2.4.3, 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8, 2.4.9, 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.6.0, 2.6.1, 2.6.2, 2.6.3, 2.7.0, 2.7.1, 2.7.10, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7, 2.7.8, 2.7.9] but these conflict with your requirements or minimum-stability.
поэтому я пытаюсь понизить zendframework/zend-mvc до 2.7.9 в composer.json и попробуйте снова:
Problem 1
- The requested package zendframework/zend-mvc (installed at 3.0.1, required as 2.7.9) is satisfiable by zendframework/zend-mvc[3.0.1] but these conflict with your requirements or minimum-stability.
Problem 2
- zendframework/zend-mvc 2.7.9 conflicts with zendframework/zend-router[3.0.2].
- zendframework/zend-mvc 2.7.9 conflicts with zendframework/zend-router[3.0.2].
- Installation request for zendframework/zend-mvc 2.7.9 -> satisfiable by zendframework/zend-mvc[2.7.9].
- Installation request for zendframework/zend-router (installed at 3.0.2) -> satisfiable by zendframework/zend-router[3.0.2].
и я подозреваю, что причина, по которой я не могу порадовать композитора, заключается в том, что это просто невозможно, т. е. doctrine-orm-module (пока) не совместим с ZF3. Правда?
4 ответа
DoctrineORMModule 1.1.0 и DoctrineModule 1.2.0 были выпущены. Это должно наконец добавить совместимость с ZF3.
Проблема 1
- Installation request for doctrine/doctrine-orm-module ^0.11.0 -> satisfiable by doctrine/doctrine-orm-module[0.11.0].
- doctrine/doctrine-orm-module 0.11.0 requires zendframework/zend-mvc ^2.5.2 -> satisfiable by zendframework/zend-mvc[2.5.2, 2.5.3, 2.6.0, 2.6.1, 2.6.2, 2.6.3, 2.7.0, 2.7.1, 2.7.10, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7, 2.7.8, 2.7.9] but these conflict with your requirements or minimum-stability.
композитор требует доктрина / доктрина-модуль-модуль
установить на zf3-скелет
Доступен пакет package -interop-doctrine, который совместим с Zend Service Manger (благодаря совместимости контейнера-взаимодействия).
Установка и использование очень похоже на doctrine/doctrine-orm-module
:
composer require dasprid/container-interop-doctrine
Его можно активировать, создав новый файл data/config/autoload/doctrine.global.php
:
<?php
use ContainerInteropDoctrine\EntityManagerFactory;
return [
'dependencies' => [
'factories' => [
'doctrine.entity_manager.orm_default' => EntityManagerFactory::class,
],
],
/**
* For full configuration options, see
* https://github.com/DASPRiD/container-interop-doctrine/blob/master/example/full-config.php
*/
'doctrine' => [
'connection' => [
'orm_default' => [
'params' => [
'url' => 'mysql://user:password@localhost/database',
],
],
],
'driver' => [
'orm_default' => [
'class' => \Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain::class,
'drivers' => [
'App\Entity' => 'my_entity',
],
],
'my_entity' => [
'class' => \Doctrine\ORM\Mapping\Driver\AnnotationDriver::class,
'cache' => 'array',
'paths' => 'src/App/Entity/',
],
],
],
];
После активации вы можете получить EntityManger
почти так же, как с doctrine-orm-module
:
$serviceLocator->get('doctrine.entity_manager.orm_default');
Единственное заметное изменение заключается в том, что entity_manger
вместо enititymanager
,
Также есть блог для установки / использования.
Вы можете попробовать fanst1109/doctrine-orm-module
composer require fanst1109/doctrine-orm-module
Это модуль Zend Framework 3, который обеспечивает функциональность Doctrine ORM