https://github.com/burdiuz/php-process-spawn
Wrapper for spawning processes in PHP
https://github.com/burdiuz/php-process-spawn
Last synced: 3 months ago
JSON representation
Wrapper for spawning processes in PHP
- Host: GitHub
- URL: https://github.com/burdiuz/php-process-spawn
- Owner: burdiuz
- Created: 2015-12-13T08:51:13.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-12-17T11:22:26.000Z (over 9 years ago)
- Last Synced: 2025-02-05T04:11:44.587Z (4 months ago)
- Language: PHP
- Size: 3.91 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
##PHP-Events
Events allow easy setup and use for communication between components in application.
Event can notify about state changes and pass data of any kind.
To use events you don't need to implement any interfaces, just create `EventDispatcher`
and register some listeners for events.
```php
class Broadcaster {
const EVENT_FIRST = 'eventFirst';
const EVENT_SECOND = 'eventSecond';
const EVENT_THIRD = 'eventThird';
/**
* @var \aw\events\EventDispatcher
*/
private $_dispatcher;//TODO add dispatcher target test
public function __construct() {
$this->_dispatcher = new \aw\events\EventDispatcher();
}public function addHandler(string $eventType, callable $handler) {
$this->_dispatcher->addEventListener($eventType, $handler);
}public function doFirst() {
echo 'do first and tell ';
$this->_dispatcher->dispatchEvent(self::EVENT_FIRST);
}public function doSecond() {
echo 'do second and tell ';
$this->_dispatcher->dispatchEvent(new \aw\events\ValueEvent(self::EVENT_SECOND, 'pass some data'));
}public function doThird() {
echo 'do third and tell ';
$this->_dispatcher->dispatchEvent(self::EVENT_THIRD);
}
}
```
After `EventDispatcher` is instantiated, you can add listeners and dispatch events.
```php
$target = new Broadcaster();
// register event handlers
$target->addHandler(Broadcaster::EVENT_FIRST, function ($event) {
echo $event->type . PHP_EOL;
});function secondHandler($event) {
echo 'handler was called with data: '.$event->value.PHP_EOL;
}$target->addHandler(Broadcaster::EVENT_SECOND, 'secondHandler');
$target->addHandler(Broadcaster::EVENT_THIRD, [new class () {
public function eventHandler($event) {
echo 'event has target: '.json_encode(isset($event->target)).PHP_EOL;
}
}, 'eventHandler']);
// broadcast events
$target->doThird(); // do third and tell event has target: true
$target->doSecond(); // do second and tell handler was called with data: pass some data
$target->doFirst(); // do first and tell eventFirst
```