matryoshka-model / mongo-wrapper
MongoDB matryoshka 包装器
Requires
- php: >=5.5.0
- ext-mongo: *
- matryoshka-model/matryoshka: ~0.8.0
- zendframework/zend-paginator: 2.*
- zendframework/zend-servicemanager: 2.*
- zendframework/zend-stdlib: 2.*
Requires (Dev)
- phpunit/phpunit: ~4.3
- satooshi/php-coveralls: dev-master
- zendframework/zend-mvc: 2.*
Suggests
- matryoshka-model/matryoshka: A lightweight framework that provides a standard and easy way to implement a model service layer
- matryoshka-model/mongo-transactional: Perform transactional operations with MongoDB
- matryoshka-model/rest-wrapper: Matryoshka wrapper aimed at creating restful API clients
- matryoshka-model/zf2-matryoshka-module: ZF2 module for matryoshka library
This package is not auto-updated.
Last update: 2024-09-14 16:03:17 UTC
README
Matryoshka 包装器 for MongoDB ------------------------------将 MongoDB 作为 Matryoshka 的数据网关使用。
社区
有关问题和支持,请访问 Slack 频道(在此 获取邀请)。
安装
使用 composer 安装。
将以下内容添加到您的 composer.json 文件中
"require": {
    "matryoshka-model/mongo-wrapper": "~0.8.0"
}
配置
此库为 Zend\ServiceManager 提供了两个抽象工厂,以便将 MongoDb 和 MongoCollection 作为服务提供。为了在 ZF2 应用程序中使用它们,请通过 service_manager 配置节点注册提供的工厂
'service_manager' => [ 'abstract_factories' => [ 'Matryoshka\Model\Wrapper\Mongo\Service\MongoDbAbstractServiceFactory', 'Matryoshka\Model\Wrapper\Mongo\Service\MongoCollectionAbstractServiceFactory', ], ],
然后,在您的配置中,您可以添加 mongodb 和 mongocollection 节点,并按示例进行配置
'mongodb' => [ 'Application\MongoDb\YourDatabaseName' => [ 'hosts' => '127.0.0.1:27017', 'database' => 'yourDatabaseName' ], ... ], 'mongocollection' => [ 'Application\DataGateway\YourCollectionName' => [ 'database' => 'Application\MongoDb\YourDatabaseName', 'collection' => 'yourCollectionName' ], ... ],
用法
此包装器提供了用于将 MongoCollection 作为数据网关使用的扩展和默认实现。
主要概念
- 
将 Matryoshka\Model\Wrapper\Mongo\Criteria\ActiveRecordCriteria实例注入到您的Matryoshka\Model\Object\AbstractActiveRecord对象中这样,matryoshka Active Record 实现将能够与您的 MongoDB 集合一起工作 
- 
Matryoshka\Model\Wrapper\Mongo\PaginatorMongoPaginatorAdapter是一个分页器适配器,可以在可分页的准则中使用
- 
Matryoshka\Model\Wrapper\Mongo\ResultSetHydratingResultSet使计数功能能够正确与MongoCursor数据源一起工作
注意
始终使用此包中包含的 HydratingResultSet 类非常重要,因为 MongoCursor 不实现 Countable,并且必须将 true 作为参数传递给 MongoCursor::count()。
组件
- 
Matryoshka\Model\Wrapper\Mongo\Criteria目录包含上述ActiveRecordCriteriamatryoshka 准则。
- 
Matryoshka\Model\Wrapper\Mongo\Hydrator目录包含- 
ClassMethods,一个可以在 MongoDB 集合作为数据网关时与 matryoshka 对象一起使用的 hydrator
- 
NamingStrategy\DefaultNamingStrategy和NamingStrategy\UnderscoreNamingStrategy,两种可以覆盖以设置字段命名规则映射的策略。默认情况下,两者都将_id转换为id。
- 
Strategy\*,一些 MongoDB 的常见策略。
 
- 
- 
Matryoshka\Model\Wrapper\Mongo\Paginator目录包含上述MongoPaginatorAdapter适配器。
- 
Matryoshka\Model\Wrapper\Mongo\ResultSet包含上述HydratingResultSet,它扩展了 matryoshka 的HydratingResultSet以使MongoCursor计数功能正常工作。
- 
Matryoshka\Model\Wrapper\Mongo\Service包含抽象服务工厂,通常用于创建\MongoCollection和\MongoDb对象的实例。使用mongocollection和mongodb配置节点分别设置它们(参见上文)。
持续集成
CI 通过 TravisCI 提供。
此包装器已在以下 MongoDB PHP 客户端上进行测试:1.4.5、1.5.0、1.5.1、1.5.2、1.5.3、1.5.3、1.5.5、1.5.6、1.5.7、1.5.8、1.6.0、1.6.1、1.6.2、1.6.3、1.6.4、1.6.5、1.6.6、1.6.7、1.6.8、1.6.9、1.6.10、1.6.11、1.6.12、1.6.13。
