ahmard / preact
在执行前执行操作,确认操作执行。
1.0.3
2020-10-23 00:41 UTC
Requires
- php: >=5.4.0
- react/promise: ^v2.0.0
This package is auto-updated.
Last update: 2024-09-23 09:18:25 UTC
README
在执行前执行操作,确认操作执行。
此程序使用 ReactPHP Promise 实现其承诺。
安装
composer require ahmard/preact
使用
事件
一个简单的基于事件的编程事件系统。
use Preact\Event; $event = new Event(); $event->on('user.created', function ($user){ echo "User created: {$user['name']}"; }); $user = [ 'id' => 1, 'name' => 'Admin' ]; $event->emit('user.created', [$user]);
您可以直接在类中使用 Preact\EventTrait 特性,并将功能嵌入到代码中。
namespace App\User; use Preact\EventTrait; class User { use EventTrait; public function create(array $userInfo) { //Save in DB $this->emit('created', [$userInfo]); } } $user = new User; $user->on('created', function ($user){ echo "User created: {$user['username']}\n"; }); $user->create([ 'username' => 'Admin', 'email' => 'admin@test.local' ]);
Preact
执行前有确认。
use React\Promise\PromisorInterface; use Preact\PreactTrait; class Animal { use PreactTrait; } $animal = new Animal(); $animal->onPreact('can.create', function (PromisorInterface $promisor, $animalInfo){ if($animalInfo['name'] == 'lion'){ $promisor->resolve(true); }else{ $promisor->reject(false); } }); $animal->preact('can.create', ['lion']) ->then(function (){ echo 'Animal creation allowed: lion'; }) ->otherwise(function (){ echo 'Animal creation rejected: lion.\n'; });
要查看更多用例,请参阅 示例。
许可证
Preact 是 MIT 许可证。