コード例 #1
0
 /**
  * @param IKernel $kernel
  * @param IController $controller
  * @param string $action
  *
  * @return array
  */
 public function injectActionParameters(IKernel $kernel, IController $controller, $action)
 {
     $injectedParameters = array();
     $neededParameters = array();
     $parametersAvailable = array($kernel->getResponse(), $kernel->getRequest(), $kernel->getServer(), $kernel->getEntityManager(), $this);
     try {
         $reflectionClass = new \ReflectionClass($controller);
         $parameters = $reflectionClass->getMethod($action)->getParameters();
     } catch (\ReflectionException $e) {
         $parameters = array();
     }
     foreach ($parameters as $parameter) {
         if ($parameter->getClass() != NULL) {
             $neededParameters[] = $parameter->getClass()->getName();
         }
     }
     foreach ($neededParameters as $type) {
         foreach ($parametersAvailable as $parameter) {
             if ($parameter instanceof $type) {
                 $injectedParameters[] = $parameter;
             }
         }
     }
     return $injectedParameters;
 }
コード例 #2
0
ファイル: Application.php プロジェクト: restinphp/restinphp
 /**
  * {@inheritDoc}
  */
 public function returnResponse()
 {
     return $this->kernel->getResponse();
 }