Zend Framework 2 + Доктрина 2 [закрыто]


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

Author: flux, 2011-10-23

2 answers

последний раз проверено: ZF2.2.*, модуль доктрины 0.7.

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

Возможно, вы захотите загрузить DoctrineORMModule через composer:

  • добавьте doctrine/doctrine-orm-module к вашему композитору.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

Я настоятельно рекомендую вам не использовать composer, так как это простой способ установить зависимости и настроить все загрузчики. Также 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',
                )
            )
        )
    ),
);

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

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

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

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

 53
Author: Samuel Herzog, 2013-05-14 18:05:46

Обновление:

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

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

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

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

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

В Zendcasts есть отличная серия учебных пособий по доктрине 2, начинающаяся с " Сущности Доктрины модульного тестирования 2". Не забудьте также посмотреть видео, которые следуют за ней, поскольку Джон Л. (ведущий) продолжал внедрять лучшие практики по мере прохождения видео.

У Zend Technologies есть окончательный вебинар под названием "Zend Framework v1 + Доктрина v2". Докладчики специально обсуждают, как они структурировали образец приложения для адаптации к миграции ZF2.

Что касается встроенной поддержки ZF2, я тоже пока ничего не нашел. Хорошо известный учебник Роба Аллена по ZF2 использует Zend\Db, и в "Кулинарной книге Ника Белхомма" Zend Framework 2.0 нет описания доктрины (пока).."

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

 5
Author: cantera, 2011-10-25 00:24:12