hoa/irc

此包已被废弃,不再维护。未建议替代包。

Hoa\Irc 库。

0.17.01.10 2017-01-10 10:42 UTC

README

Hoa

Build status Code coverage Packagist License

Hoa 是一套 模块化可扩展结构化 的 PHP 库。
此外,Hoa 致力于成为工业和学术界之间的桥梁。

Hoa\Irc

Help on IRC Help on Gitter Documentation Board

此库允许编写 IRC 客户端,并通过监听器和简单方法进行交互。

了解更多.

安装

使用 Composer,要将此库添加到依赖项中,您需要要求 hoa/irc

$ composer require hoa/irc '~0.0'

有关更多安装程序,请阅读源代码页面

测试

在运行测试套件之前,必须安装开发依赖项

$ composer install

然后,运行所有测试套件

$ vendor/bin/hoa test:run

有关更多信息,请阅读贡献者指南

快速使用

我们提供了一个简单客户端的快速概述,该客户端加入频道并与提及进行交互。接下来,我们将使用 WebSocket 服务器增强此客户端以接收外部消息。

与提及进行交互

Hoa\Irc\Client 提供以下监听器:openjoinmessageprivate-messagementionother-messagepingkickinviteerror

为了连接到 IRC 服务器,我们必须使用一个套接字客户端,例如

$uri    = 'irc://chat.freenode.net';
$client = new Hoa\Irc\Client(new Hoa\Socket\Client($uri));

然后,我们将附加我们的监听器。当连接打开时,我们将加入一个频道,例如使用 Gordon 用户名的 #hoaproject

$client->on('open', function (Hoa\Event\Bucket $bucket) {
    $bucket->getSource()->join('Gordon', '#hoaproject');

    return;
});

接下来,当有人提及 Gordon 时,我们将回答 什么?

$client->on('mention', function (Hoa\Event\Bucket $bucket) {
    $data    = $bucket->getData();
    $message = $data['message']; // do something with that.

    $bucket->getSource()->say(
        $data['from']['nick'] . ': What?'
    );

    return;
});

最后,运行客户端

$client->run();

包含 WebSocket 服务器

我们可以添加一个 WebSocket 服务器以接收外部消息并将它们转发到 IRC 客户端。因此,我们的程序开头将如下所示

$ircUri = 'irc://chat.freenode.net';
$wsUri  = 'ws://127.0.0.1:8889';

$group  = new Hoa\Socket\Connection\Group();
$client = new Hoa\Irc\Client(new Hoa\Socket\Client($ircUri));
$server = new Hoa\Websocket\Server(new Hoa\Socket\Server($wsUri));

$group[] = $server;
$group[] = $client;

然后,我们将将 WebSocket 服务器接收到的所有消息转发到 IRC 客户端

$server->on('message', function (Hoa\Event\Bucket $bucket) use ($client) {
    $data = $bucket->getData();
    $client->say($data['message']);

    return;
});

最后,运行 IRC 客户端和 WebSocket 服务器

$group->run();

要向 WebSocket 服务器发送消息,我们可以使用 CLI 中的 WebSocket 客户端

$ echo 'foobar' | hoa websocket:client -s 127.0.0.1:8889

文档

Hoa\Irc 的黑客手册 包含有关如何使用此库及其工作方式的详细信息。

要本地生成文档,请执行以下命令

$ composer require --dev hoa/devtools
$ vendor/bin/hoa devtools:documentation --open

更多文档可以在项目的网站上找到: hoa-project.net

获取帮助

主要有两种方式获取帮助

贡献

你想贡献力量吗?谢谢!详细的 贡献指南 解释了你需要知道的一切。

许可

Hoa 采用新 BSD 许可证 (BSD-3-Clause)。请参阅 LICENSE 以获取详细信息。