public function testCall() { $xml = '<event key="core/object/modify" subject="core:domain"> <call>core/test</call> </event>'; $event = new Event($xml, $this->getJarves()); $this->assertEquals('core/object/modify', $event->getKey()); $this->assertEquals('core:domain', $event->getSubject()); $this->assertEquals(['core/test'], $event->getCalls()); $this->assertEquals($xml, $event->toXml()); }
/** * @param Event $eventConfig * @param GenericEvent $event */ public function call(Event $eventConfig, $event) { if ($eventConfig->getCalls()) { foreach ($eventConfig->getCalls() as $call) { call_user_func_array($call, [$event]); } } if ($eventConfig->getClearCaches()) { foreach ($eventConfig->getClearCaches() as $cacheKey) { $this->cacher->invalidateCache($cacheKey); } } if ($eventConfig->getServiceCalls()) { foreach ($eventConfig->getServiceCalls() as $serviceCall) { list($service, $method) = explode('::', $serviceCall); if ($this->container->has($service)) { $service = $this->container->get($service); $service->{$method}($event); } } } }