Zend Framework 2 + Doctrine 2

Я хотел бы начать разработку с Zend Framework, и я бы хотел использовать zf2. Поскольку я использую Doctrine 2, можете ли вы предложить некоторые учебные пособия, которые помогут мне интегрировать его в zf2? Благодаря!

последний раз проверен: ZF2.2. *, DoctrineORMModule 0.7.

Официальный модуль

Вы можете загрузить DoctrineORMModule через композитор:

  • добавьте doctrine/doctrine-orm-module к вашему требованию composer.json (пример кода после списка bcs проблем с форматированием)
  • запустить php composer.phar install
  • создать каталог ./data/DoctrineORMModule/Proxy и обеспечить доступ для записи для вашего приложения
  • настройте доктрину с помощью своих приложений /config/autoload чтобы предоставить модулю специфические для проекта настройки (база данных и т. д.),
  • настроить отображение сущности доктрины в своих модулях config.php
  • добавить объект в свой проект
  • добавьте DoctrineORMModule и DoctrineModule в ваш config/application.config.php
  • запустите инструмент ./vendor/bin/doctrine-module orm:schema-tool:create для создания ваших таблиц ./vendor/bin/doctrine-module orm:schema-tool:create

Я сильно препятствую вам не использовать композитор, так как это простой способ установить зависимости и настроить все автозагрузчики. Также ZF2 отправляется через композитор по умолчанию.

Пример кода

composer.json

 { "require" : { "php": ">=5.3.3", "zendframework/zendframework": "2.*" "doctrine/doctrine-orm-module": "0.*" } } 

сущности

 <?php return array( 'doctrine' => array( 'driver' => array( // defines an annotation driver with two paths, and names it `my_annotation_driver` 'my_annotation_driver' => array( 'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver', 'cache' => 'array', 'paths' => array( 'path/to/my/entities', 'another/path' ), ), // default metadata driver, aggregates all other drivers into a single one. // Override `orm_default` only if you know what you're doing 'orm_default' => array( 'drivers' => array( // register `my_annotation_driver` for any entity under namespace `My\Namespace` 'My\Namespace' => 'my_annotation_driver' ) ) ) ) ); 

Учтите, что нужно знать: пути к вашим специалистам должны быть полностью квалифицированными. Лучше всего начинать с __DIR__ , иначе все сломается (каждый новый проект мне интересно, почему инструмент командной строки не работает, пока не найду эту ошибку …;)

Настройки соединения

 <?php return array( 'doctrine' => array( 'connection' => array( // default connection name 'orm_default' => array( 'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver', 'params' => array( 'host' => 'localhost', 'port' => '3306', 'user' => 'username', 'password' => 'password', 'dbname' => 'database', ) ) ) ), ); 

Все примеры кода являются частью официального модуля модуля доктрины

Дальнейшее чтение:

Марко Пиветта сделала замечательную презентацию об использовании доктрины-модуля , которую я рекомендую всем, кто использует этот модуль.

Джейсон Граймс написал учебник, представленный на phpdeveloper.org, который должен помочь установить доктрину, прежде чем появился официальный модуль.

Обновить:

Я исследовал это немного дальше, и похоже, что поддержка Doctrine 2 в Zend Framework 2 все еще работает. Я рекомендую следить за этим Github Gist, чтобы следить за тем, как продвигается прогресс.

Тем временем, вы можете захотеть проверить поставщика zf2-доктрины хранилища от Michiel Staessen. Пока нет документации, но это было бы логичным следующим шагом, как только вы сможете ускорить работу библиотеки Bisna в ZF 1.x.

Мне очень приятно видеть, что большая часть обсуждения вокруг ZF2 для поддержки Doctrine была сосредоточена на гибкости. Это моя надежда (и, видимо, и другие), что использование Doctrine в Zend Framework не будет либо / или выбором, а скорее вариантом создания конкретных частей прочной и гибкой модели домена.

Оригинальное сообщение:

К счастью, большинство основных ресурсов для изучения ZF 1.x + Doctrine учитывали переход на ZF2. Они не охватывают официальную поддержку Doctrine в ZF2, но они должны помочь вам начать работу со многими основными принципами.

Zendcasts имеет отличную учебную серию Doctrine 2, начиная с « Unit Testing Doctrine 2 Entities ». Обязательно просмотрите видео, которые следуют за ним, так как Джон Л. (ведущий) продолжал включать лучшие практики, когда он продвигался по видео.

Zend Technologies имеет окончательный веб-семинар под названием « Zend Framework v1 + Doctrine v2 ». Ведущие конкретно обсуждают, как они структурировали образец приложения для обеспечения миграции ZF2.

Что касается родной поддержки ZF2, я еще ничего не нашел. Известный учебник ZF2 Роба Аллена использует Zend \ Db, и пока нет доктрины Doctrine в « Поваренной книге Zend Framework 2.0» Ника Белхома.

Удачи вам в том, чтобы начать работу и, пожалуйста, разместите любые полезные ресурсы, которые вы найдете на ZF2 / D2.