2017 © Pedro Peláez
 

library event

image

rixxi/event

  • Wednesday, June 18, 2014
  • by mishak87
  • Repository
  • 1 Watchers
  • 0 Stars
  • 11 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

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., (*1)

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)., (*2)

Solves $presenter->redirect([$code, ], $destination[, $arguments]) for you in civilized manner, (*3)

<?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

The Versions

18/06 2014

dev-master

9999999-dev

  Sources   Download

GPL-3.0 BSD-3-Clause GPL-2.0

The Requires