public function execute(ActionMapping $mapping, AbstractActionForm $form = null, Request $request, Response $response) { // Identify the request parameters controlling our actions $page = $request->get("page"); $prefix = $request->get("prefix"); if ($page == null || $prefix == null) { $message = $this->getActionKernel()->getInternal()->getMessage("switch.required", $mapping->getPath()); throw new \Phruts\Exception($message); } // Switch to the requested module \Phruts\Util\RequestUtils::selectModule($request, $this->getActionKernel()->getApplication()); if ($request->attributes->get(\Phruts\Util\Globals::MODULE_KEY) == null) { $message = $this->getActionKernel()->getInternal()->getMessage("switch.prefix", $prefix); $response->setContent(400); $response->setContent($message); return null; } // Forward control to the specified module-relative URI $forward = new \Phruts\Config\ForwardConfig(); $forward->setPath($page); return $forward; }
public function testGetResources() { $getDataSource = self::getMethod('getResources'); // Get from the request $messages = new \Phruts\Util\PropertyMessageResources(__DIR__ . '/UtilTest/Example'); $this->request->attributes->set(\Phruts\Util\Globals::MESSAGES_KEY, $messages); $result = $getDataSource->invokeArgs($this->action, array($this->request)); $this->assertNotEmpty($result); // Get from the application $request = \Symfony\Component\HttpFoundation\Request::create('http://localhost/test', 'GET', array(), array(), array(), array('PATH_INFO' => '/test')); $application = new \Silex\Application(); $application[\Phruts\Util\Globals::PREFIXES_KEY] = array(); $moduleConfig = new \Phruts\Config\ModuleConfig(''); $application[\Phruts\Util\Globals::MODULE_KEY] = $moduleConfig; \Phruts\Util\RequestUtils::selectModule($request, $application); $key = 'key'; $application[$key] = $messages; $actionKernel = new \Phruts\Action\ActionKernel($application); $this->action->setActionKernel($actionKernel); $result = $getDataSource->invokeArgs($this->action, array($this->request, $key)); $this->assertNotEmpty($result); }
/** * * @param Request $request * @param Response $response */ protected function process(Request $request, Response $response) { $this->init(); RequestUtils::selectModule($request, $this->application); $this->getRequestProcessor($this->getModuleConfig($request))->process($request, $response); }