26 lines
		
	
	
		
			638 B
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			638 B
		
	
	
	
		
			PHP
		
	
	
	
<?php namespace App\Support;
 | 
						|
 | 
						|
use Symfony\Component\EventDispatcher\GenericEvent;
 | 
						|
 | 
						|
class Hook
 | 
						|
{
 | 
						|
    public static function listen($tag, $class)
 | 
						|
    {
 | 
						|
        $object = with(new $class);
 | 
						|
        $methods = get_class_methods($object);
 | 
						|
        foreach ($methods as $method) {
 | 
						|
            app('dispatcher')->addListener($tag.'.'.$method, [$object, $method]);
 | 
						|
        }
 | 
						|
        unset($object);
 | 
						|
    }
 | 
						|
 | 
						|
    public static function fire($tag, $data = [])
 | 
						|
    {
 | 
						|
        $event = new GenericEvent();
 | 
						|
        $event->setArguments($data);
 | 
						|
        $event = app('dispatcher')->dispatch($event, $tag);
 | 
						|
        return $event->getArguments();
 | 
						|
    }
 | 
						|
    
 | 
						|
}
 |