wildphp/irc-messages

WildPHP 的 IRC 消息实现

v0.3.1 2020-12-27 11:02 UTC

README

Build Status Scrutinizer Code Quality Scrutinizer Code Coverage Latest Stable Version Latest Unstable Version Total Downloads

为 WildPHP 设计的各种 IRC 消息的实现。

安装

要安装此包,您需要 Composer

$ composer require wildphp/irc-messages ^0.1

用法

这些消息可以独立使用,无需使用任何其他工具。例如

// Privmsg(string $channel, string $message)
$privmsg = new Privmsg('#channel', 'This is a message');

$rawMessage = (string) $privmsg; //: "PRIVMSG #channel :This is a message" + "\r\n" 

IncomingMessage 实例可以从解析的消息创建,这对于您只想得到消息的通用表示很有用。如果消息类型实现了 IncomingMessageInterface,则可以将这些转换为专用对象。

// IncomingMessage(string $prefix, string $verb, array $args)
$incoming = new IncomingMessage('nickname!username@hostname', 'PRIVMSG', ['This is a message']);

$privmsg = Privmsg::fromIncomingMessage($incoming);

提供了一个实用工具类,该类试图找到将消息专门化的最合适的类。

$incoming = new IncomingMessage('nickname!username@hostname', 'PRIVMSG', ['This is a message']);

$privmsg = MessageCaster::castMessage($incoming);

// $privmsg is now an object of the Privmsg class.

数字消息存储在 RPL 目录下,其官方名称,因为 PHP 不支持数字类名。您可以使用 RplTranslateEnum 类将数字动词转换为相应的类名。确保以 字符串 的形式传递数字,以考虑到前导零。数字如 '3' 不会被接受。

$topicClass = RplTranslateEnum::translateNumeric('332');

// $topicClass is now '\WildPHP\Messages\RPL\Topic'

实现的消息

消息可以作为传入或传出消息实现。

传入消息可以从 IncomingMessage 类转换。

传出消息可以转换为字符串,以便将其发送到 IRC 服务器。

贡献者

您可以在 GitHub 仓库中查看完整的贡献者列表 这里