ahmard/preact

在执行前执行操作,确认操作执行。

1.0.3 2020-10-23 00:41 UTC

This package is auto-updated.

Last update: 2024-09-23 09:18:25 UTC


README

在执行前执行操作,确认操作执行。
此程序使用 ReactPHP Promise 实现其承诺。

安装

composer require ahmard/preact

使用

  1. 事件
  2. 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 许可证。