wyrihaximus/cake-async-orm

此包已被废弃,不再维护。未建议替代包。

异步 CakePHP ORM

安装次数: 2,103

依赖者: 0

建议者: 0

安全性: 0

星标: 13

关注者: 4

分支: 0

开放问题: 3

类型:cakephp-plugin

dev-master 2019-04-23 05:38 UTC

This package is auto-updated.

Last update: 2022-02-01 12:47:18 UTC


README

Linux Build Status Latest Stable Version Total Downloads Code Coverage License PHP 7 ready

异步访问 async projecs 中的 cake3 模型,目前处于早期 Alpha 阶段。

示例

<?php

namespace App\Shell;

use Cake\Console\Shell;
use React\EventLoop\Factory;
use WyriHaximus\React\Cake\Orm\AsyncTableRegistry;

class ScreenshotsShell extends Shell
{
    public function status()
    {
        $loop = Factory::create();
        AsyncTableRegistry::init($loop);

        // Keep in mind that ALL methods on the AsyncTable you get from the AsyncTableRegistry is a promise
        AsyncTableRegistry::get('Screenshots')->find('all')->then(function ($data) use ($loop) {
            var_export($data);
            $loop->stop();
        }, function ($error) use ($loop) {
            var_export($error);
            $loop->stop();
        });

        $loop->run();
    }
}

(A)sync 检测

为了仅在连接池上运行必要的表对象调用,已实施几种检测策略,具体如下

  • Docblock 返回类型,如果与 Cake\ORM\Query 匹配,将忽略任何注释或函数名
  • 可以在类级别使用 Async 和 Sync 注释,但在方法级别可以覆盖
  • 函数名检测,fetch*find*retrieve* 将是异步的,除非被注释或返回类型覆盖,其余将是同步的

许可证

版权所有 2015 Cees-Jan Kiewiet

在此特此授予任何获取此软件及其相关文档文件(“软件”)副本的任何人免费处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向提供软件的个人提供此类软件,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,没有任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是由于合同、侵权或其他方式引起的,并且与软件或软件的使用或其他交易有关。