rixxi / event
Installs: 21
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
pkg:composer/rixxi/event
Requires
- kdyby/events: @dev
- nette/nette: @dev
This package is not auto-updated.
Last update: 2025-10-07 07:44:19 UTC
README
This pattern introduces more complexity and issues then it solves. Use Nette events with rixxi/redirector instead, it is more robust and simpler solution then custom event classes.
Discontinued support - You can use it, but you have been warned.
KISS pattern for solving most of the onEvent problems using basket with some code (IEvent).
Solves $presenter->redirect([$code, ], $destination[, $arguments]) for you in civilized manner
<?php use Rixxi\Event\IEvent; use Rixxi\Event\IRedirect; use Rixxi\Event\Redirect as RedirectTrait; class ShitHappensEvent implements IEvent, IRedirect { use RedirectTrait; } class Service extends Nette\Object { public $onShitHappens = []; public function __construct(Rixxi\Event\Redirector $redirector) { $this->redirector = $redirector; } public function makeShitHappen() { $this->onShitHappens($event = ShitHappensEvent); $this->redirector->handle($event); } } // register extension and let DI do its magic $service = new Service(); $service->onShitHappen[] = function (ShitHappensEvent $e) { if (/* some important condition */) { $e->redirect('Presenter:action', [ 'arguments ' ]); } }; $service->onShitHappen[] = function () { echo 'Default $presenter->redirect(...) would kill request before I can write something. So grateful!'; }; // you can easily add default redirection $service->onShitHappen[] = Rixxi\Event\Helper::defaultRedirect('Homepage:default'); $service->makeShitHappen(); // shit will happen and then redirection too