1. Go to this page and download the library: Download ptrofimov/zeroevents library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ptrofimov / zeroevents example snippets
Event::listen('my.events.*', new EventListener(['connect' => 'ipc://my.ipc']));
Event::listen('my.events.*', function () {
echo 'Catched event:', Event::firing(), PHP_EOL;
});
(new EventService)
->listen(new EventListener(['bind' => 'ipc://my.ipc']))
->run();
use ZeroEvents\EventSocket;
$socket = new EventSocket(new ZMQContext, ZMQ::SOCKET_PUSH);
$socket->connect('ipc:///var/tmp/test.ipc');
Event::listen('zeroevents.push.error', function () {
// logging or something else
});
$socket->push('event', ['payload']);
Event::listen('my.events.*', new EventListener('my.socket.config.key'));
$options = [
'example.connection' => [
/*
* Number of io-threads in context, default = 1
*/
'threads' => 1,
/*
* Persistent context is stored over multiple requests, default = false
*/
'is_persistent' => false,
/*
* Socket type
*
* Full list of available types http://php.net/manual/en/class.zmq.php
* Description of sockets http://zguide.zeromq.org/page:all#toc11
*/
'socket_type' => ZMQ::SOCKET_PUSH,
/*
* Default options for ZeroMQ socket
*/
'socket_options' => [
ZMQ::SOCKOPT_LINGER => 2000, // wait before disconnect (ms)
ZMQ::SOCKOPT_SNDTIMEO => 2000, // send message timeout (ms)
ZMQ::SOCKOPT_RCVTIMEO => 2000, // receive message timeout (ms)
],
/*
* Addresses to bind. Only one process can bind address
*
* About available transports (inproc, ipc, tcp) http://zguide.zeromq.org/page:all#toc13
*/
'bind' => [
'tcp://127.0.0.1:5555',
],
/*
* Addresses of sockets, the same time can be connected multiple addresses
*
* About available transports (inproc, ipc, tcp) http://zguide.zeromq.org/page:all#toc13
*/
'connect' => [
'tcp://127.0.0.1:5555',
],
/*
* Type of events to subscribe. Events masks (*) are not here supported.
*
* Only useful for SOCKET_SUB socket type
*/
'subscribe' => 'my.events',
/*
* Send/wait confirmation after sending/receiving message
*/
'confirmed' => false,
/*
* Serializer Interface through which message payload is serialized before sending
*/
'serializer' => 'ZeroEvents\Serializers\JsonSerializer'
],
];