예제 #1
0
 /**
  * @return \Spryker\Zed\ZedRequest\Business\Client\Request
  */
 public function getRequest()
 {
     if (isset($this->fixtureRequest)) {
         return $this->fixtureRequest;
     }
     return parent::getRequest();
 }
예제 #2
0
 /**
  * @param \Symfony\Component\HttpFoundation\Request $request
  *
  * @return \Symfony\Component\HttpFoundation\Response|array
  */
 public function repeatAction(Request $request)
 {
     $repeatData = $this->getFacade()->getRepeatData($request);
     if (!is_array($repeatData)) {
         return new Response('No request to repeat.');
     }
     TransferServer::getInstance()->activateRepeating();
     $request = Request::createFromGlobals();
     $request->attributes->set('module', $repeatData['module']);
     $request->attributes->set('controller', $repeatData['controller']);
     $request->attributes->set('action', $repeatData['action']);
     $request->request->replace($repeatData);
     return $this->getApplication()->handle($request, HttpKernelInterface::SUB_REQUEST);
 }
 /**
  * @param \Spryker\Zed\Kernel\Communication\Controller\AbstractGatewayController $controller
  * @param string $action
  *
  * @throws \LogicException
  *
  * @return \Spryker\Zed\ZedRequest\Business\Client\Request
  */
 private function getRequestTransfer(AbstractGatewayController $controller, $action)
 {
     $classReflection = new ReflectionObject($controller);
     $methodReflection = $classReflection->getMethod($action);
     $parameters = $methodReflection->getParameters();
     $countParameters = count($parameters);
     if ($countParameters > 2 || $countParameters === 2 && end($parameters)->getClass() !== 'Spryker\\Shared\\Library\\Transfer\\Request') {
         throw new LogicException('Only one transfer object can be received in yves-action');
     }
     /** @var \ReflectionParameter $parameter */
     $parameter = array_shift($parameters);
     if ($parameter) {
         $class = $parameter->getClass();
         if (empty($class)) {
             throw new LogicException('You need to specify a class for the parameter in the yves-action.');
         }
         $this->validateClassIsTransferObject($class->getName());
     }
     return TransferServer::getInstance()->getRequest();
 }
 /**
  * @return void
  */
 private function resetTransferServer()
 {
     $fixtureServer = TransferServer::getInstance();
     $this->resetSingleton($fixtureServer);
     CoreTransferServer::getInstance($this->createRepeaterMock());
 }
 /**
  * @param \Silex\Application $app
  *
  * @return void
  */
 public function boot(Application $app)
 {
     $app->before(function (Request $request) {
         TransferServer::getInstance()->setRequest($request);
     });
 }