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\Paginator
MongoPaginatorAdapter
是一个分页器适配器,可以在可分页的准则中使用 -
Matryoshka\Model\Wrapper\Mongo\ResultSet
HydratingResultSet
使计数功能能够正确与MongoCursor
数据源一起工作
注意
始终使用此包中包含的 HydratingResultSet
类非常重要,因为 MongoCursor
不实现 Countable
,并且必须将 true
作为参数传递给 MongoCursor::count()
。
组件
-
Matryoshka\Model\Wrapper\Mongo\Criteria
目录包含上述ActiveRecordCriteria
matryoshka 准则。 -
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。