PHP Event-Listener best-practice implementation

前端 未结 4 834
甜味超标
甜味超标 2020-11-30 17:41

I am trying to create a CMS-like system in PHP. making it as modular and extendable as possible.

Could someone offer me the best-practice scenario of creating a even

4条回答
  •  粉色の甜心
    2020-11-30 17:58

    /*
     Example 1: 
     event::bind('blog.post.create', function($args = array())
     {
        mail('myself@me.com', 'Blog Post Published', $args['name'] . ' has been published');
    });
    
     Example 2: 
     event::trigger('blog.post.create', $postInfo);
    */
    
    class event
    {
        public static $events = array();
    
        public static function trigger($event, $args = array())
        {
            if(isset(self::$events[$event]))
            {
                foreach(self::$events[$event] as $func)
                {
                    call_user_func($func, $args);
                }
            }
    
        }
    
        public static function bind($event, Closure $func)
        {
            self::$events[$event][] = $func;
        }
    }
    

提交回复
热议问题