wyrihaximus / parallel-runtime
🎁 ext-parallel 运行时包装,增加错误、信号和异常处理
1.0.0
2020-12-05 23:09 UTC
Requires
- php: ^7.4
- ext-parallel: ^1
- ext-pcntl: ^7.4
- wyrihaximus/constants: ^1.6
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-05 04:12:10 UTC
README
ext-parallel
运行时包装,增加错误、信号和异常处理。
安装
通过 Composer 安装,使用以下命令,它将自动检测最新版本并绑定 ^
。
composer require wyrihaximus/parallel-runtime
使用
Runtime
类透明地包装 ext-parallel
的运行时类。但它不会返回您从闭包返回的内容,而是返回一个 Outcome
对象。该 Outcome
对象包含您闭包的结果,以及任何报告的错误。请考虑以下示例
<?php declare(strict_types=1); use WyriHaximus\Parallel\Runtime; use function trigger_error; use const WyriHaximus\Constants\ComposerAutoloader\LOCATION; $runtime = new Runtime(LOCATION); $future = $runtime->run(static function (): string { trigger_error('Error! Error! Error!'); return 'yay'; }); posix_kill(posix_getpid(), SIGUSR1); $outcome = $future->value(); echo get_class($outcome), PHP_EOL; // WyriHaximus\Parallel\Outcome echo $outcome->result(), PHP_EOL; // yay foreach ($outcome->errors() as $error) { echo $error->message(), PHP_EOL; // Error! Error! Error! } foreach ($outcome->signals() as $signal) { echo $signal->signal(), PHP_EOL; // SIGUSR1 }
许可证
MIT 许可证 (MIT)
版权所有 © 2020 Cees-Jan Kiewiet
特此授予任何获取此软件及其相关文档文件(以下简称“软件”)副本的个人,在软件上无限制地处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及允许向软件提供的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论此类责任基于合同、侵权或其他方式产生,无论此类责任是否与软件或其使用或其他方式有关。