1. Go to this page and download the library: Download icehawk/pubsub 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/ */
icehawk / pubsub example snippets
namespace MyVendor\MyNamespace;
use IceHawk\PubSub\Interfaces\CarriesInformation;
use IceHawk\PubSub\Interfaces\IdentifiesMessage;
use IceHawk\PubSub\Interfaces\NamesMessage;
final class MyMessage implements CarriesInformation
{
/** @var IdentifiesMessage */
private $messageId;
/** @var NamesMessage */
private $messageName;
/** @var string */
private $content;
public function __construct( IdentifiesMessage $messageId, NamesMessage $messageName, string $content )
{
$this->messageId = $messageId;
$this->messageName = $messageName;
$this->content = $content;
}
public function getMessageId() : IdentifiesMessage
{
return $this->messageId;
}
public function getMessageName() : NamesMessage
{
return $this->messageName;
}
public function getContent() : string
{
return $this->content;
}
}
namespace MyVendor\MyNamespace;
use IceHawk\PubSub\Types\MessageId;
use IceHawk\PubSub\Types\MessageName;
$myMessage = new MyMessage(
new MessageId( '123456-ABC-789' ),
new MessageName( 'Something had happened' ),
'Hello World!'
);
namespace MyVendor\MyNamespace;
use IceHawk\PubSub\AbstractMessageSubscriber;
use IceHawk\PubSub\Types\Channel;
final class MySubscriber extends AbstractMessageSubscriber
{
protected function whenSomethingHadHappened( MyMessage $myMessage, Channel $channel )
{
printf(
'Message named "%s" with ID "%s" was published on channel "%" with content: "%s"',
$myMessage->getMessageName(),
$myMessage->getMessageId(),
$channel,
$myMessage->getContent()
);
}
}
namespace MyVendor\MyNamespace;
use IceHawk\PubSub\MessageBus;
use IceHawk\PubSub\Types\Channel;
// ...
$messageBus = new MessageBus();
$messageBus->subscribe( new Channel( 'ListenToMe' ), new MySubscriber() );
namespace MyVendor\MyNamespace;
use IceHawk\PubSub\Types\Channel;
// ...
$messageBus->publish( new Channel('ListenToMe'), $message );
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.