include "vendor/autoload.php";
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\Event;
class UserEvent extends Event
{
public function name()
{
return "Cartman";
}
public function age()
{
return "24";
}
}
$dispatcher = new EventDispatcher();
$dispatcher->addListener("user.name", function($event, $eventName, $dispatcher){
echo "My name is Cartman\n";
});
$dispatcher->addListener("user.name", function($event, $eventName, $dispatcher){
echo "My name is {$event->name()} from Event instance\n";
}, 10);
$dispatcher->addListener("user.age", function($event, $eventName, $dispatcher){
echo "My age is 24\n";
}, 10);
$dispatcher->addListener("user.age", function($event, $eventName, $dispatcher){
echo "My age is {$event->age()} from Event instance\n";
}, -10);
$dispatcher->dispatch("user.name", new UserEvent());
$dispatcher->dispatch("user.age", new UserEvent());
My name is Cartman from Event instance My name is Cartman My age is 24 My age is 24 from Event instance
include "vendor/autoload.php";
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class BookEvent extends Event
{
public $name = self::class;
}
class BookSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
"chinese.name" => "chineseNameShow",
"english.name" => [
["englishNameShow", -10],
["englishNameAFter", 10],
],
"math.name" => ["mathNameShow", 100]
];
}
public function chineseNameShow(Event $event)
{
echo "我是汉语书籍\n";
}
public function englishNameShow(Event $event)
{
echo "我是英文书籍\n";
}
public function englishNameAFter(Event $event)
{
echo "我是展示之后的英文书籍[来自于Event实例{$event->name}]\n";
}
public function mathNameShow(Event $event)
{
echo "我是展示的数学书籍\n";
}
}
$dispatcher = new EventDispatcher();
$subscriber = new BookSubscriber();
$dispatcher->addSubscriber($subscriber);
$dispatcher->dispatch("english.name", new BookEvent());
$dispatcher->dispatch("chinese.name");
$dispatcher->removeSubscriber($subscriber);
$dispatcher->dispatch("math.name");
我是展示之后的英文书籍[来自于Event实例BookEvent] 我是英文书籍 我是汉语书籍
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有