Можно ли установить модуль доктрины orm с помощью скелетного приложения ZF3?

Мои знания php composer не более чем базовые, но... Я скачал и установил Zend Framework 3.0.0dev приложение скелета MVC и хотел узнать, могу ли я установить модуль 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].

и я подозреваю, что причина, по которой я не могу осчастливить композитора, заключается в том, что это просто невозможно сделать, т. е. доктрина-форм-модуль (пока) не совместима с ZF3. Истинный?


person David    schedule 29.06.2016    source источник


Ответы (4)


DoctrineORMModule 1.1.0 и DoctrineModule 1.2.0 был выпущен. Это должно, наконец, добавить совместимость с ZF3.

person xtreamwayz    schedule 29.06.2016
comment
это все, что мне нужно было знать. После публикации этого я наткнулся на ваш освещающий xtreamwayz.com/ blog/ и собирался поиграть с этим. Я новичок в Expressive и ZF3, но похоже, что концепции в вашем посте аналогичны тому, что потребуется для интеграции DoctrineORMModule с ZF3. - person David; 30.06.2016
comment
Моя ошибка. Теперь они поддерживают zend-servicemanager 3, но еще не поддерживают zend-mvc 3, который необходим для ZF3. - person xtreamwayz; 05.07.2016
comment
Я просто просматривал github.com/doctrine/DoctrineModule/pull/564 и как немного нуб во всем, что касается git. Я хочу убедиться, что правильно понимаю, что на данный момент (13 сентября 2016 г.) мы все еще ждем поддержки ZF3. Истинный? - person David; 13.09.2016
comment
Выпущены DoctrineORMModule 1.1.0 и DoctrineModule 1.2.0. Это должно наконец добавить совместимость с ZF3. - person xtreamwayz; 04.10.2016

Проблема 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-скелет

person Diego    schedule 05.07.2016

Доступен пакет container-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.

Также есть сообщение в блоге для установки/использования.

person Fge    schedule 05.07.2016
comment
выдает Unable to resolve service doctrine.entity_manager.orm_default на фабрику; Вы уверены, что предоставили его во время настройки? - person İbrahim Duran; 25.07.2016
comment
Мое счастливое предположение заключается в том, что вы используете ServiceManager V2, а в примере используется V3. Некоторое время назад я приводил грубый пример: github.com/funct/composable-expressive. - person Fge; 26.07.2016

Вы можете попробовать fanst1109/doctrine-orm-module

composer require fanst1109/doctrine-orm-module

Это модуль Zend Framework 3, который обеспечивает функциональность Doctrine ORM.

person pedro    schedule 14.07.2016