activecollab / promises
服务器端承诺
3.0.1
2022-03-03 09:03 UTC
Requires
- php: >=7.4
- activecollab/databaseconnection: ^5.0
- psr/log: ~1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- monolog/monolog: ~1.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-08-29 03:47:39 UTC
README
此库的目的是提供持久的服务器端承诺。我们构建它来支持我们的多服务系统,其中一个服务发出工作请求并期望另一个服务执行它(并在接受工作时分发承诺,承诺可以是完成或拒绝)。
示例
<?php use ActiveCollab\DatabaseConnection\Connection\MysqliConnection; $mysqli_link = new \MySQLi('localhost', 'root', '', 'activecollab_promises_test'); if ($mysqli_link->connect_error) { throw new \RuntimeException('Failed to connect to database. MySQL said: ' . $mysqli_link->connect_error); } $mysqli_connection = new MysqliConnection($mysqli_link); $promises = new Promises($this->connection); // Print promise signature $promise = $promises->create(); print $promise->getSinature() . "\n"; print (string) $promise . "\n"; // __toString() is available // Default promise status $promise = $promises->create(); $promises->isFulfilled($promise); // false $promises->isRejected($promise); // false $promises->isSettled($promise); // false // Promise fulfillment $promise = $promises->create(); $promises->fulfill($promise); $promises->isFulfilled($promise); // true $promises->isRejected($promise); // false $promises->isSettled($promise); // true // Promise rejection $promise = $promises->create(); $promises->reject($promise); $promises->isFulfilled($promise); // false $promises->isRejected($promise); // true $promises->isSettled($promise); // true
运行测试
要运行测试,请使用 cd
命令进入此目录,然后运行
phpunit -c test