PHP Symfony - příklad jak použít Event, EventListener a EventDispatcher

PHP Symfony - příklad jak použít Event, EventListener a EventDispatcher

Dobrý den,

mám problém pochopit jak použít v PHP Symfony Event, EventListener a EventDispatcher. To co je v dokumentaci odkazuje na kernel atd a to mně moc smysl nedává. Vůbec nevím jak to použít i jen k prostému vypsání hlášky, kterou by EventListener vypsal přes echo.

Díky


ODPOVĚĎ


Dobrý den,

zde je praktická ukázka použití Event, EventListener a EventDispatcher v Symfony frameworku:


CONTROLLER
-----------------------------------------------------

...........
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Contracts\EventDispatcher\Event;
use App\Event\DemoEvent;
use App\EventListener\DemoListener;
.............
$dispatcher = new EventDispatcher();
$listener = new DemoListener();
$dispatcher->addListener('demo.created', array($listener, 'onDemoEvent'));
$dispatcher->dispatch(new DemoEvent(), 'demo.created');
.............



EVENT
Event/DemoEvent.php
-----------------------------------------------------

namespace App\Event;

use App\Entity\Demo;
use Symfony\Contracts\EventDispatcher\Event;

class DemoEvent extends Event
{
protected $var;

public function __construct()
{
$this->var = 'string';
}

public function getVar()
{
return $this->var;
}
}



EVENT LISTENER
EventLister/DemoListener.php
-----------------------------------------------------

namespace App\EventListener;

use Symfony\Contracts\EventDispatcher\Event;

class DemoListener
{
public function onDemoEvent(Event $event)
{
echo "Byl zavolan DemoListener - hodnota je: ".$event->getVar();
}
}




Výstupem pro $dispatcher->dispatch(new DemoEvent(), 'demo.created'); je:

Byl zavolan DemoListener - hodnota je: string


PS: 100% funkční oveřené Show english version

Komentáře

Vaše reakce na PHP Symfony - příklad jak použít Event, EventListener a EventDispatcher

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.