tsiura/promise-watcher

一个用于异步、基于promise的对象监视的PHP库

1.0 2024-06-18 16:28 UTC

This package is auto-updated.

Last update: 2024-09-18 16:56:55 UTC


README

一个用于异步、基于promise的对象监视的PHP库。

基本用法示例

class EvalObjNum implements EvaluatedObjectInterface
{
    public function __construct(
        private readonly int $value,
    ) {
    }

    public function __toString(): string
    {
        return sprintf('%s', $this->value);
    }

    public function evaluate(mixed $object): bool
    {
        return (is_numeric($object) && $object == $this->value);
    }
}

$watcher = new ObjectWatcher(Loop::get());

$w1 = $watcher->createWatching(new EvalObjNum(10), 1);
$w1->start()
    ->then(function ($value) {
        echo sprintf('Evaluated successfully with value ' . $value) . PHP_EOL;
    }, function (\Throwable $e) { echo $e->getMessage() . PHP_EOL; });

$watcher->evaluate(11);

此示例中打印 监视超时 0:(10)

如果我们用数字10来评估,输出将是 评估成功,值为10

对于评估更复杂的对象,可以使用 webmozart/expression