/**
* Presenter Package 는 JsonRenderer, HtmlRenderer 를 지원한다.
* Xpressengine 은 Register Container 로 등록된 Renderer 를 사용한다.
*
* @return RendererInterface
*/
protected function get()
{
$format = $this->request->format();
if (isset($this->presentables[$format]) === false) {
throw new NotFoundFormatException(['name' => $format]);
}
if ($format == HtmlPresenter::format() && $this->api === true && $this->html === false) {
$format = JsonPresenter::format();
}
$presenter = $this->getPresenter($format);
if (is_subclass_of($presenter, RendererInterface::class) === false && is_subclass_of($presenter, Presentable::class) === false) {
throw new InvalidPresenterException(['name' => get_class($presenter)]);
}
return $presenter;
}