joacub / doctrine-orm-module

提供 Doctrine ORM 功能的 Zend Framework 2 模块

0.11.0 2016-07-03 15:07 UTC

README

Master branch build status Scrutinizer Quality Score Code Coverage Latest Stable Version Total Downloads

DoctrineORMModule 可以快速方便地将 Doctrine 2 ORM 集成到 Zend Framework 2 中。

  • Doctrine 2 ORM 支持
  • 多个 ORM 实体管理器
  • 多个 DBAL 连接
  • 在 DBAL 连接中重用现有的 PDO 连接

安装

此模块的安装使用 composer。有关 composer 文档,请参阅 getcomposer.org

php composer.phar require doctrine/doctrine-orm-module
# (When asked for a version, type `0.*`)

然后,将 DoctrineModuleDoctrineORMModule 添加到您的 config/application.config.php 中,并创建目录 data/DoctrineORMModule/Proxy,确保您的应用程序有权写入此目录。

不使用 composer 的安装不受官方支持,需要您手动安装 composer.json 中列出的所有依赖项。

实体设置

要注册实体到 ORM,请将以下元数据驱动配置添加到您的模块(合并)配置中,为每个实体命名空间中的每个实体

<?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'
                )
            )
        )
    )
);

连接设置

连接参数可以在应用程序配置中定义

<?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',
                )
            )
        )
    ),
);

完整配置选项

配置选项的详尽列表可以直接在每个模块的选项类中找到。

有关模块功能的文档可以在以下链接中找到

注册的服务名称

  • doctrine.connection.orm_default:一个 Doctrine\DBAL\Connection 实例
  • doctrine.configuration.orm_default:一个 Doctrine\ORM\Configuration 实例
  • doctrine.driver.orm_default:默认映射驱动程序实例
  • doctrine.entitymanager.orm_default:一个 Doctrine\ORM\EntityManager 实例
  • Doctrine\ORM\EntityManager:是 doctrine.entitymanager.orm_default 的别名
  • doctrine.eventmanager.orm_default:一个 Doctrine\Common\EventManager 实例

命令行

以下是如何访问 Doctrine 命令行

./vendor/bin/doctrine-module

服务定位器

要访问实体管理器,请使用主服务定位器

// for example, in a controller:
$em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
$em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');