caridea/dao

DAO支持库的小虾米

3.0.0 2018-01-29 00:11 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:09:26 UTC


README

Caridea是一个微小的PHP应用程序库。这个小巧的家伙是你只需一些辅助而不需要完整框架时使用的。

这是其数据访问对象(DAO)支持组件。您可以使用这些类来支持您编写的DAO。

Packagist Build Status Scrutinizer Code Quality Code Coverage Documentation Status

安装

您可以使用Composer安装此库

$ composer require caridea/dao
  • 此项目的master分支(3.x版本)需要PHP 7.1,并依赖于caridea/event
  • 此项目的2.x版本需要PHP 7.0,并依赖于caridea/event

合规性

此库的发布将遵循语义版本控制

我们的代码旨在遵循PSR-1PSR-2PSR-4。如果您发现任何与标准合规性相关的问题,请发送拉取请求!

文档

功能

我们提供了一个机制,将供应商特定的异常(目前为MongoDB和Doctrine异常)转换为标准异常层次结构。

  • Conflicting – 用于并发失败的异常。
  • Inoperable – 用于无效API使用和配置问题的异常。
  • Locked – 用于不可写入的记录的异常。
  • Unreachable – 用于连接问题的异常。
  • Unretrievable – 用于意外结果,例如没有结果或结果过多的情况的异常。
  • Violating – 用于约束违反的异常。
    • Duplicative – 用于唯一约束违反的异常。
  • 当所有其他方法都失败时,还有Generic

我们还提供了抽象DAO,允许您调用持久化API,并自动转换异常。

class MyDao extends \Caridea\Dao\MongoDb
{
    public function create($record)
    {
        $this->logger->info("Creating the record");
        $this->doExecute(function ($manager, $collection) use ($record) {
            $bulk = new \MongoDB\Driver\BulkWrite();
            $bulk->insert($record);
            return $manager->executeBulkWrite($collection, $bulk);
        });
    }
}