matryoshka-model/mongo-wrapper

MongoDB matryoshka 包装器

v0.8.1 2016-04-23 15:10 UTC

README

Matryoshka 包装器 for MongoDB ------------------------------

Latest Stable Version Build Status Coveralls branch Total Downloads Matryoshka Model's Slack

将 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',
    ],
],

然后,在您的配置中,您可以添加 mongodbmongocollection 节点,并按示例进行配置

'mongodb' => [
    'Application\MongoDb\YourDatabaseName' => [
        'hosts' => '127.0.0.1:27017',
        'database' => 'yourDatabaseName'
    ],
    ...
],

'mongocollection'    => [
    'Application\DataGateway\YourCollectionName' => [
        'database'   => 'Application\MongoDb\YourDatabaseName',
        'collection' => 'yourCollectionName'
    ],
    ...
],

用法

此包装器提供了用于将 MongoCollection 作为数据网关使用的扩展和默认实现。

主要概念

  1. Matryoshka\Model\Wrapper\Mongo\Criteria\ActiveRecordCriteria 实例注入到您的 Matryoshka\Model\Object\AbstractActiveRecord 对象中

    这样,matryoshka Active Record 实现将能够与您的 MongoDB 集合一起工作

  2. Matryoshka\Model\Wrapper\Mongo\Paginator

    MongoPaginatorAdapter 是一个分页器适配器,可以在可分页的准则中使用

  3. 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\DefaultNamingStrategyNamingStrategy\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 对象的实例。使用 mongocollectionmongodb 配置节点分别设置它们(参见上文)。

持续集成

CI 通过 TravisCI 提供。

此包装器已在以下 MongoDB PHP 客户端上进行测试:1.4.51.5.01.5.11.5.21.5.31.5.31.5.51.5.61.5.71.5.81.6.01.6.11.6.21.6.31.6.41.6.51.6.61.6.71.6.81.6.91.6.101.6.111.6.121.6.13

Analytics