/** * @param string $type The content type * @param callable|array|string $handler The handler for that type * * @return void * * @throws \Exception */ public function registerContentType($type, $handler) { $this->dispatcher->dispatch(new RegisterContentTypeEvent($type, $handler)); try { $this->renderer->registerContentType($type, $handler); $this->dispatcher->dispatch(new RegisterContentTypeSuccessEvent($type, $handler)); } catch (\Exception $exception) { $this->dispatcher->dispatch(new RegisterContentTypeFailureEvent($type, $exception)); throw $exception; } }
/** * Register this content type to a renderer * * @param RendererInterface $renderer The renderer * * @return void */ public function register(RendererInterface $renderer) { $this->renderer = $renderer; switch ($renderer->getClass()) { case HtmlRenderer::class: $method = 'asHtml'; break; default: $method = 'asPlain'; break; } $renderer->registerContentType('WorkflowState', [$this, $method]); }