wildphp / irc-messages
WildPHP 的 IRC 消息实现
v0.3.1
2020-12-27 11:02 UTC
Requires
- php: >=7.2.0
Requires (Dev)
- phpunit/phpunit: ^8
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-08-30 01:20:14 UTC
README
为 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 仓库中查看完整的贡献者列表 这里。