dvsa/mot-doctrine-module

DVSA Doctrine 模块


README

此模块为 doctrine 提供额外的工具和配置(包括 doctrine/cache, DoctrineModule 和 DoctrineORMModule)。

安装

推荐的安装方式是通过 Composer

composer require dvsa/mot-doctrine-module

缓存

缓存服务别名

Doctrine\Common\Cache\Cache 服务提供了一个服务工厂

use Doctrine\Common\Cache\Cache;

$cache = $serviceLocator->get(Cache::class);

此服务作为对特定实现的别名,需要配置

return [
    'cache' => [
        'instance' => 'doctrine.cache.memcached'
    ]
]

在这种情况下,doctrine.cache.memcached 是将使用的服务名称。

Memcache

doctrine.cache.memcache 服务提供了一个服务工厂,这是 doctrine 在选择缓存驱动程序为 memcache 时所期望的。

它可以配置以下详细信息(这些都是默认值)

return [
    'cache' => [
        'memcache' => [
            'servers' => [
                [
                    'host' => 'localhost',
                    'port' => 11211,
                    'persistent' => true,
                    'weight' => 1
                ],
            ],
        ],
    ],
]

Memcached

doctrine.cache.memcached 服务提供了一个服务工厂,这是 doctrine 在选择缓存驱动程序为 memcached 时所期望的。

它可以配置以下详细信息(这些都是默认值)

return [
    'cache' => [
        'memcached' => [
            'servers' => [
                [
                    'host' => 'localhost',
                    'port' => 11211,
                ],
            ],
            'options' => [
                \Memcached::OPT_HASH => \Memcached::HASH_DEFAULT,
            ],
            'persistent_id' => 'MOT',
        ],
    ],
]

接受所有由 Memcached::addServersMemcached::setOptions 接受的参数。服务器的顺序很重要(键被忽略)。

默认情况下,Memcached 实例在请求结束时被销毁。要创建一个在请求之间持续存在的实例,请使用 persistent_id 指定实例的唯一 ID。具有相同 persistent_id 的所有实例将共享相同的连接。要将持久性设置为禁用,请将 persistent_id 设置为 null(默认情况下启用)。

警告:如果 Memcached 无法连接到服务器,它不会报错。如果配置中提供了错误的参数,应用程序将不会缓存。

贡献

请参阅我们的 贡献指南