phergie/phergie-irc-parser

This package is abandoned and no longer maintained. No replacement package was suggested.

Parser for messages conforming to the IRC protocol

Maintainers

👁 elazar

Package info

github.com/phergie/phergie-irc-parser

pkg:composer/phergie/phergie-irc-parser

Statistics

Installs: 23 661

Dependents: 7

Suggesters: 0

Stars: 16

Open Issues: 2

2.3.1 2018-10-16 12:33 UTC

Requires

  • php: ^7.0 || ^5.6

Suggests

None

Provides

None

Conflicts

None

Replaces

None

BSD-2-Clause 44681f3750d539744646e7f064484ab3f1736053

parserirc


README

This repo is being kept for posterity and will be archived in a readonly state. If you're interested it can be forked under a new Composer namespace/GitHub organization.

phergie/phergie-irc-parser

A PHP-based parser for messages conforming to the IRC protocol as described in RFC 1459 and RFC 2812.

👁 Build Status

Install

The recommended method of installation is through composer.

{
 "require": {
 "phergie/phergie-irc-parser": "~1"
 }
}

Design goals

  • Minimal dependencies: PHP 5.4.2+ with the core PCRE extension
  • Can extract messages from a real-time data stream
  • Simple easy-to-understand API

Usage

<?php
$stream = ":Angel PRIVMSG Wiz :Hello are you receiving this message ?\r\n"
 . "PRIVMSG Angel :yes I'm receiving it !receiving it !'u>(768u+1n) .br\r\n";
$parser = new Phergie\Irc\Parser();

// Get one message without modifying $stream
// or null if no complete message is found
$message = $parser->parse($stream);

// Get one message and remove it from $stream
// or null if no complete message is found
$message = $parser->consume($stream);

// Get all messages without modifying $stream
// or an empty array if no complete messages are found
$messages = $parser->parseAll($stream);

// Get all messages and remove them from $stream
// or an empty array if no complete messages are found
$messages = $parser->consumeAll($stream);

/*
One parsed message looks like this:
array(
 'prefix' => ':Angel',
 'nick' => 'Angel',
 'command' => 'PRIVMSG',
 'params' => array(
 'receivers' => 'Wiz',
 'text' => 'Hello are you receiving this message ?',
 'all' => 'Wiz :Hello are you receiving this message ?',
 ),
 'targets' => array('Wiz'),
 'message' => ":Angel PRIVMSG Wiz :Hello are you receiving this message ?\r\n",
)
*/

Tests

To run the unit test suite:

curl -s https://getcomposer.org/installer | php
php composer.phar install
./vendor/bin/phpunit Phergie/Irc/ParserTest.php

License

Released under the BSD License. See LICENSE.

Community

Check out #phergie on irc.freenode.net or e-mail us at team@phergie.org.

Related Projects