Example #1
0
 /**
  * @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())));
 }
 public function run()
 {
     $reflectionClass = new \ReflectionClass($this);
     if ($reflectionClass->hasMethod($method = 'action' . StringUtils::camelize($this->request->getAction()))) {
         $parameterList = $this->request->getParameterList();
         $methodReflection = $reflectionClass->getMethod($method);
         $argumentList = [];
         foreach ($methodReflection->getParameters() as $parameterRefleciton) {
             if (!isset($parameterList[$parameterRefleciton->getName()])) {
                 if ($parameterRefleciton->isOptional()) {
                     continue;
                 }
                 throw new \Exception('not implemented yet: define invalid request exception');
             }
             $argumentList[] = $parameterList[$parameterRefleciton->getName()];
         }
         $methodReflection->invokeArgs($this, $argumentList);
     }
 }
Example #3
0
 /**
  * $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());
 }