在非 laravel 项目中使用 laravel 的特性 11: Event && Listener 
                                                    
                        
                    
                    
  
                    
                    Event && Listener
安装所需的扩展包
composer require illuminate/events新建 event 文件 src/Events/UserHasRegisteredEvent.php
<?php
namespace App\Events;
class UserHasRegisteredEvent
{
    protected $username;
    public function __construct($username)
    {
        $this->username = $username;
    }
    public function getUsername()
    {
        return $this->username;
    }
}新建 listener 文件 src/Listeners/SendWelcomingEmail.php
<?php
namespace App\Listeners;
use App\Events\UserHasRegisteredEvent;
class SendWelcomingEmail
{
    public function handle(UserHasRegisteredEvent $event)
    {
        echo $event->getUsername() . ', welcome to my world!';
    }
}项目根目录新建入口 index/event.php
<?php
include __DIR__ . '/../vendor/autoload.php';
use App\Events\UserHasRegisteredEvent;
use App\Listeners\SendWelcomingEmail;
$dispatcher = new \Illuminate\Events\Dispatcher();
// Defining the listeners
$dispatcher->listen([UserHasRegisteredEvent::class], SendWelcomingEmail::class);
// Firing the event
$dispatcher->dispatch(new UserHasRegisteredEvent('Joey'));命令行开启服务 php -S localhost:8000 并访问 http://localhost:8000/index/event.php 即可。
由于没有统一的观察者绑定入口 (laravel 中的 EventServiceProvider),所以都需要在使用时进行手动绑定,待优化。
参考 致谢
本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           ZouZhipeng 的个人博客
 ZouZhipeng 的个人博客
         
             
             
             
                     
                     
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: