decodelabs/deliverance

共享数据传输接口

v0.2.12 2024-08-22 12:31 UTC

README

PHP from Packagist Latest Version Total Downloads GitHub Workflow Status PHPStan License

PHP的共享数据传输接口

Deliverance是一个中间件库,旨在供其他需要管理多路IO操作的其他框架系统使用。

DecodeLabs博客 上获取新闻和更新。

安装

通过Composer安装

composer require decodelabs/deliverance

使用方法

通道

通道代表简单的输入/输出处理器,可以写入和读取。

use DecodeLabs\Deliverance;

$stream = Deliverance::openStream('path/to/file');
$stream->writeLine('Hello world');

$stream = Deliverance::openCliOutputStream(); // Same as new Deliverance\Channel\Stream(STDOUT);

$buffer = Deliverance::newBuffer();
$buffer->write('Some text to buffer');
echo $buffer->read(6); // "Some t"

IO代理

通道可以分组并由一个 IO代理 管理

use DecodeLabs\Deliverance;

// Create a CLI IO handler
$broker = Deliverance::newBroker()
    ->addInputProvider(Deliverance::openStream(STDIN))
    ->addOutputReceiver(Deliverance::openStream(STDOUT))
    ->addErrorReceiver(Deliverance::openStream(STDERR));

// Shortcut to the above:
$broker = Deliverance::newCliBroker();


// Read line from CLI
$broker->setReadBlocking(true);
$text = $broker->readLine();

// Write it back to output
$broker->writeLine('INPUT: '.$text);

一旦分组,IO代理中的通道可以用作不同信息源之间的接口;参见 Systemic Unix进程启动器 的示例,它使用 proc_open() 管理输入和输出。

许可

Deliverance遵循MIT许可证。有关完整的许可证文本,请参阅 LICENSE