2017 © Pedro Peláez
 

library irc

The Hoa\Irc library.

image

hoa/irc

The Hoa\Irc library.

  • Tuesday, January 10, 2017
  • by Hoa
  • Repository
  • 11 Watchers
  • 18 Stars
  • 198 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 8 Forks
  • 8 Open issues
  • 13 Versions
  • 7 % Grown

The README.md

Hoa , (*1)


Build status Code coverage Packagist License , (*2)

Hoa is a modular, extensible and structured set of PHP libraries.
Moreover, Hoa aims at being a bridge between industrial and research worlds. , (*3)

Hoa\Irc

Help on IRC Help on Gitter Documentation Board, (*4)

This library allows to write an IRC client, and interact through listeners and simple methods., (*5)

Learn more., (*6)

Installation

With Composer, to include this library into your dependencies, you need to require hoa/irc:, (*7)

$ composer require hoa/irc '~0.0'

For more installation procedures, please read the Source page., (*8)

Testing

Before running the test suites, the development dependencies must be installed:, (*9)

$ composer install

Then, to run all the test suites:, (*10)

$ vendor/bin/hoa test:run

For more information, please read the contributor guide., (*11)

Quick usage

We propose a quick overview of a simple client that joins a channel and interacts to mentions. Next, we will enhance this client with a WebSocket server to receive external messages., (*12)

Interact to mentions

The Hoa\Irc\Client proposes the following listeners: open, join, message, private-message, mention, other-message, ping, kick, invite and error., (*13)

In order to connect to an IRC server, we have to use a socket client, such as:, (*14)

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

Then, we attach our listeners. When the connexion will be opened, we will join a channel, for example #hoaproject with the Gordon username:, (*15)

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

    return;
});

Next, when someone will mention Gordon, we will answer What?:, (*16)

$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;
});

Finally, to run the client:, (*17)

$client->run();

Include a WebSocket server

We can add a WebSocket server to receive external messages we will forward to the IRC client. Thus, the beginning of our program will look like:, (*18)

$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;

Then, we will forward all messages received by the WebSocket server to the IRC client:, (*19)

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

    return;
});

Finally, to run both the IRC client and WebSocket server:, (*20)

$group->run();

To send a message to the WebSocket server, we can use a WebSocket client in CLI:, (*21)

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

Documentation

The hack book of Hoa\Irc contains detailed information about how to use this library and how it works., (*22)

To generate the documentation locally, execute the following commands:, (*23)

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

More documentation can be found on the project's website: hoa-project.net., (*24)

Getting help

There are mainly two ways to get help:, (*25)

Contribution

Do you want to contribute? Thanks! A detailed contributor guide explains everything you need to know., (*26)

License

Hoa is under the New BSD License (BSD-3-Clause). Please, see LICENSE for details., (*27)

The Versions

10/01 2017

dev-master

9999999-dev https://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

10/01 2017

0.17.01.10

0.17.01.10 https://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

08/11 2016

0.16.11.08

0.16.11.08 https://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

03/02 2016

0.16.02.03

0.16.02.03 http://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

11/01 2016

0.16.01.11

0.16.01.11 http://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

08/09 2015

0.15.09.08

0.15.09.08 http://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

29/05 2015

0.15.05.29

0.15.05.29 http://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

20/02 2015

0.15.02.20

0.15.02.20 http://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

09/12 2014

0.14.12.10

0.14.12.10 http://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

13/11 2014

0.14.11.15

0.14.11.15 http://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

23/09 2014

0.14.09.23

0.14.09.23 http://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

17/09 2014

0.14.09.17

0.14.09.17 http://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc

16/09 2014

0.14.09.16

0.14.09.16 http://hoa-project.net/

The Hoa\Irc library.

  Sources   Download

BSD-3-Clause

The Requires

 

library client irc