stefanotorresi / thorr-persistence
通过供应商特定适配器为DataMapper实现提供无差别的接口
1.0.0
2015-05-18 21:01 UTC
Requires
- php: ~5.5
- rhumsaa/uuid: ~2.8
Requires (Dev)
Suggests
- zendframework/zend-eventmanager: required to use the EventManagerAware decorator
- zendframework/zend-modulemanager: required to load the library as a ZF2 module
- zendframework/zend-servicemanager: required to use DataMapperManager
- zendframework/zend-validator: required to use entity validators
This package is auto-updated.
Last update: 2024-09-12 03:43:44 UTC
README
通过供应商特定适配器为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');