fgsl/doctrine-orm-module

Laminas 模块,提供 Doctrine ORM 功能

1.0.0 2020-02-07 16:58 UTC

This package is auto-updated.

Last update: 2024-09-08 03:21:44 UTC


README

这是 Laminas 的 Doctrine\DoctrineORMModule 的重构。

DoctrineORMModule 快速简单地集成 Doctrine 2 ORM 与 Laminas。

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

安装

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

composer require fgsl/doctrine-orm-module

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

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

实体设置

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

<?php
return [
    'doctrine' => [
        'driver' => [
            // defines an annotation driver with two paths, and names it `my_annotation_driver`
            'my_annotation_driver' => [
                'class' => \Doctrine\ORM\Mapping\Driver\AnnotationDriver::class,
                'cache' => 'array',
                'paths' => [
                    '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' => [
                'drivers' => [
                    // register `my_annotation_driver` for any entity under namespace `My\Namespace`
                    'My\Namespace' => 'my_annotation_driver',
                ],
            ],
        ],
    ],
];

连接设置

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

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

完整的配置选项

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

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

已注册服务名称

  • 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::class);