stefanotorresi/thorr-persistence

通过供应商特定适配器为DataMapper实现提供无差别的接口

1.0.0 2015-05-18 21:01 UTC

This package is auto-updated.

Last update: 2024-09-12 03:43:44 UTC


README

Latest Stable Version Latest Unstable Version Build Status Code Coverage Scrutinizer Code Quality

通过供应商特定适配器为DataMapper实现提供无差别的接口。

实现

DataMapperManager使用

这个库提供了一个可选的Zend Framework 2插件管理器,用于管理DataMapperInterface实例,即DataMapperManager

它提供了一个获取实体数据映射器的方法:DataMapperManager::getDataMapperForEntity($entity)

以下是一个示例

$config = new DataMapperManagerConfig([
    'entity_data_mapper_map' => [
        Entity::class => 'EntityDataMapperServiceName',
    ],
    'factories' => [
        'EntityDataMapperServiceName' => function () {
            // return a DataMapperInterface            
        },
    ],
]);

$dataMapperManager = new DataMapperManager($config);

// retrieves the service configured as 'EntityDataMapperServiceName'
$entityMapper = $dataMapperManager->getDataMapperForEntity(Entity::class);

要使用DataMapperManager,您必须通过Composer要求zendframework/zend-servicemanager

composer require zendframework/zend-servicemanager

在ZF2模块中的使用

当将库作为Zend Framework 2模块使用时,您可以加载模块Thorr\Persistence并在您的模块中实现DataMapperManagerConfigProviderInterface,通过getDataMapperManagerConfig()方法提供配置。

该模块还会在主ServiceManager中注册一个带有其FQCN的DataMapperManager实例,并使用DataMapperManager名称作为别名,因此您可以如下检索它

$serviceManager->get(DataMapperManager::class);
// or
$serviceManager->get('DataMapperManager');