/** * {@inheritdoc} */ public function dispatchPostEvent($eventName, RequestConfiguration $requestConfiguration, ResourceInterface $resource) { $eventName = $requestConfiguration->getEvent() ?: $eventName; $metadata = $requestConfiguration->getMetadata(); $event = $this->getEvent($resource); $this->eventDispatcher->dispatch(sprintf('%s.%s.post_%s', $metadata->getApplicationName(), $metadata->getName(), $eventName), $event); return $event; }
/** * {@inheritdoc} */ public function dispatchPostEvent($eventName, RequestConfiguration $requestConfiguration, ResourceInterface $resource) { $eventName = $requestConfiguration->getEvent() ?: $eventName; $this->eventDispatcher->dispatch(sprintf('enhavo_app.post_%s', $eventName), new ResourceControllerEvent($resource)); return parent::dispatchPostEvent($eventName, $requestConfiguration, $resource); }
function it_dispatches_appropriate_custom_post_event_for_a_resource(RequestConfiguration $requestConfiguration, MetadataInterface $metadata, EventDispatcherInterface $eventDispatcher, ResourceInterface $resource) { $requestConfiguration->getEvent()->willReturn('register'); $requestConfiguration->getMetadata()->willReturn($metadata); $metadata->getApplicationName()->willReturn('sylius'); $metadata->getName()->willReturn('product'); $eventDispatcher->dispatch('sylius.product.post_register', Argument::type(ResourceControllerEvent::class))->shouldBeCalled(); $this->dispatchPostEvent(ResourceActions::CREATE, $requestConfiguration, $resource)->shouldHaveType(ResourceControllerEvent::class); }