wyrihaximus / cake-async-orm
此包已被废弃,不再维护。未建议替代包。
异步 CakePHP ORM
dev-master
2019-04-23 05:38 UTC
Requires
- php: ^7.2
- api-clients/cs-fixer-config: ^1.0
- cakephp/cakephp: ^3.7.2
- doctrine/annotations: ^1.2
- friendsofphp/php-cs-fixer: ^2.14
- nikic/php-parser: ^4.0 || ^3.0 || ^2.0 || ^1.0
- phpdocumentor/reflection-docblock: ^4.0 || ^3.0 || ^2.0
- roave/better-reflection: ^3.1 || ^2.0
- wyrihaximus/react-child-process-pool: ^1.3
Requires (Dev)
This package is auto-updated.
Last update: 2022-02-01 12:47:18 UTC
README
异步访问 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
在此特此授予任何获取此软件及其相关文档文件(“软件”)副本的任何人免费处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向提供软件的个人提供此类软件,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,没有任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是由于合同、侵权或其他方式引起的,并且与软件或软件的使用或其他交易有关。