/** * @return IPresenter */ public function factory() { $modulePath = []; foreach ($this->request->getModulePath() as $module) { $modulePath[] = StringUtils::camelize($module) . 'Module'; } return $this->context->create(sprintf('%s\\%sPresenter', implode('\\', $modulePath), StringUtils::camelize($this->request->getPresenter()))); }
/** * $request is target application request which will be matched * * @param IRequest $request * * @return null|string */ public function build(IRequest $request) { return sprintf('%s/%s/%s/%s', $request->getHttpRequest()->getUrl()->getAuthority(), implode(':', $request->getModulePath()), $request->getPresenter(), $request->getAction()); }