wyrihaximus / react-child-process-messenger
react/child-process 的消息传递装饰器
Requires
- php: ^8 || ^7.4
- ext-hash: ^8 || ^7.4
- ext-json: ^8 || ^7.4
- cakephp/utility: ^4.2.4
- doctrine/inflector: ^2.0.3
- evenement/evenement: ^3.0.1
- paragonie/random_compat: ^9.0 || ^2.0
- react/child-process: ^0.6.2
- react/event-loop: ^1.1.1
- react/promise: ^2.8
- react/promise-stream: ^1.2
- react/promise-timer: ^1.6
- react/socket: ^1.6
- thecodingmachine/safe: ^1.3.3
- wyrihaximus/composer-update-bin-autoload-path: ^1.1.1
- wyrihaximus/constants: ^1.6
- wyrihaximus/file-descriptors: ^1.1
- wyrihaximus/json-throwable: ^4.1
- wyrihaximus/ticking-promise: ^2 || ^3
Requires (Dev)
- wyrihaximus/async-test-utilities: ^3.4.18
- 5.x-dev
- 4.x-dev
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.x-dev
- 3.1.0
- 3.0.0
- 2.10.x-dev
- 2.10.1
- 2.10.0
- 2.9.3
- 2.9.2
- 2.9.1
- 2.9.0
- 2.8.2
- 2.8.1
- 2.8.0
- 2.7.3
- 2.7.2
- 2.7.1
- 2.7.0
- 2.6.1
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.2
- 2.0.1
- 2.0.0
- 1.0.0
- dev-renovate/cakephp-utility-4.x
- dev-renovate/cakephp-utility-5.x
- dev-renovate/symfony
- dev-renovate/react-socket-1.x
- dev-renovate/wyrihaximus-async-test-utilities-8.x
- dev-renovate/react-promise-timer-1.x
- dev-renovate/react-promise-3.x
- dev-renovate/major-phpstan-packages
- dev-renovate/thecodingmachine-safe-2.x
- dev-renovate/react-promise-stream-1.x
- dev-renovate/react-promise-2.x
- dev-renovate/react-event-loop-1.x
- dev-renovate/wyrihaximus-file-descriptors-1.x
- dev-renovate/react-child-process-0.x
- dev-renovate/evenement-evenement-3.x
- dev-renovate/doctrine-inflector-2.x
- dev-dependabot/composer/composer/composer-1.10.27
- dev-Ditch-Dependabot
- dev-master
- dev-4.x-shouldn't-require-vendor.php-but-autoload.php
- dev-handle-handshake-errors-child-side
- dev-close-all-fds-before-spawning-process
- dev-send-handshake-after-settingup-timeout
- dev-child-connect-to-parent-time-out
- dev-child-process.php-stop-loop-on-errors-from-child-factory
- dev-child-process-0.5
- dev-var.ci
- dev-ci-travis-osx-builds
This package is auto-updated.
Last update: 2024-09-21 03:33:50 UTC
README
在 react/child-process
的基础上,提供普通消息和 RPC 风格的包装器。若需要消息池,请查看 wyrihaximus/react-child-process-pool
安装
要使用 Composer 安装,请使用以下命令,它将自动检测最新版本并将其与 ~
绑定。
composer require wyrihaximus/react-child-process-messenger
简化示例
虽然此包支持多种设置父子进程之间通信的方法,但最简单的方法是创建一个实现 WyriHaximus\React\ChildProcess\Messenger\ChildInterface
的类。在调用 create
之后,将设置并创建处理支持的 RPC
和消息的所有内容。
<?php use React\EventLoop\LoopInterface; use WyriHaximus\React\ChildProcess\Messenger\ChildInterface; use WyriHaximus\React\ChildProcess\Messenger\Messages\Payload; use function React\Promise\resolve; final class ExampleChild implements ChildInterface { public static function create(Messenger $messenger, LoopInterface $loop) { $messenger->registerRpc('example', function (Payload $payload) { return resolve($payload->getPayload()); }); } }
在父进程中,您只需要调用以运行该类的子进程
MessengerFactory::parentFromClass('ExampleChild', $loop)->then(static function (Messenger $messenger): void { $messenger->rpc(/* etc etc */); });
更多示例
有关消息和 RPC 示例,请参阅 examples 目录
贡献
有关详细信息,请参阅 CONTRIBUTING
许可协议
版权所有 2021 Cees-Jan Kiewiet
在此特此免费授予任何获得本软件及其相关文档文件(“软件”)副本的任何人,以不受限制地处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及准许向软件提供的人这样做,前提是以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、适用于特定用途和版权侵权保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是因合同、侵权或其他方式而产生的,与软件或其使用或其他交易有关。