Подтвердить что ты не робот

Zend Framework 2 + Doctrine 2

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

4b9b3361

Ответ 1

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

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

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

  • добавить doctrine/doctrine-orm-module к вашему запросу composer.json(пример кода после списка bcs проблем с форматированием)
  • run php composer.phar install
  • создать каталог ./data/DoctrineORMModule/Proxy и обеспечить доступ для записи для вашего приложения
  • настроить доктрину через ваши приложения /config/autoload, чтобы предоставить модулю специфичные для проекта настройки (база данных и т.д.)
  • настроить отображение сущности доктрины в ваших модулях config.php
  • добавить объект в свой проект
  • добавьте DoctrineORMModule и DoctrineModule к config/application.config.php
  • запустите инструмент cli для создания ваших таблиц ./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'
                )
            )
        )
    )
);

A getcha, чтобы быть в курсе: пути к вашим entites должны быть полностью квалифицированы. Лучше всего начинать с __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, который должен помочь установить доктрину, прежде чем появился официальный модуль.

Ответ 2

Update:

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

Тем временем вы можете проверить репозиторий zf2-doctrine-provider от 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, а в Nick Belhomme нет доктрины " Zend Framework 2.0 Cookbook.

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