public function testInvoke() { $eventName = 'foo'; $eventContext = new \stdClass(); $eventParams = ['bar' => 'baz']; $event = new Event(); $event($eventName, $eventContext, $eventParams); $this->assertSame($eventName, $event->getName()); $this->assertSame($eventContext, $event->getContext()); $this->assertSame($eventParams, $event->getParams()); }
/** * Constructor. * * @param string $name The name of event * @param mixed $context The event context * @param array $params The event parameters */ public function __construct($name = null, $context = null, array $params = null) { parent::__construct($name, $context, $params); }
/** * Creates an instance of Event and triggers it. * * To trigger an event of particular class, use the trigger() method. * * @param string $eventName The event name * @param object $context Optional; the event conext * @param array $params Optional; the event parameters * * @throws \InvalidArgumentException If the specified event name is not string * * @return Event */ public function __invoke($eventName, $context = null, array $params = null) { if (!is_string($eventName)) { throw new InvalidArgumentException(sprintf('Invalid event name provided; must be an string, "%s" received.', is_object($eventName) ? get_class($eventName) : gettype($eventName))); } $event = new Event($eventName); if (null !== $context) { $event->setContext($context); } if (null !== $params) { $event->setParams($params); } return $this->pullTriggers($event); }