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

异步访问异步项目中的 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 检测

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

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

许可

版权所有 2015 Cees-Jan Kiewiet

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

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

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是根据合同、侵权或其他方式产生的,与软件或软件的使用或其他交易有关。