美文网首页
laravel源码解析(十) 事件

laravel源码解析(十) 事件

作者: mafa1993 | 来源:发表于2020-12-15 21:35 被阅读0次

事件(完结篇)

代码完成后,需要增加新功能,事件 与 监听器 其实是一个类,需要让该类以及其中方法在 原来已经存在的程序中间的一个地方执行。
事件也可以说是一种预留手段,根据你的经验在需要的地方 埋点,方便之后 打补丁

  1. src/Event/Listener
  2. 在Application类中进行注册registerBaseServicProvider()中

源码见个人git https://github.com/mafa1993/slaravel

<?php

//用于事件存储
namespace Slaravel\Event;


class Event
{
    protected $listener; //如果多个监听器,只会记录最后一个
    protected $events; //记录所有

    public function listener($listener,$callback){

        $this->listener = strtolower($listener);
        $this->events[$listener] = [$callback];
    }


    /**
     * 分发执行
     * @param $listener
     * @param array $param
     * @return bool
     */
    public function dispatch($listener,$param = []){
        $listener = strtolower($listener);
        if($this->events[$listener]){
            ($this->events[$listener][0])(...$param);
            return true;
        }
    }

}
namespace Slaravel\Event;
use Slaravel\Foundation\Application;

class Listener
{
    protected $name = 'listener';
    protected $app;

    public function __construct(Application $app)
    {
        $this->app = $app;
    }

    public function handle(){}

    public function getname(){
        return $this->name;
    }

}

相关文章

网友评论

      本文标题:laravel源码解析(十) 事件

      本文链接:https://www.haomeiwen.com/subject/jrlggktx.html