From 3502a55dde1635c21dedb27de2a66316e03d350e Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 29 Jun 2016 13:07:42 +0200 Subject: php-zendframework-zend-mvc-plugin-prg: clean --- .../src/PostRedirectGet.php | 150 --------------------- 1 file changed, 150 deletions(-) delete mode 100644 zend-mvc-plugin-prg-8c7ccb9f0004e92ff258b483447d914f42cb7448/src/PostRedirectGet.php (limited to 'zend-mvc-plugin-prg-8c7ccb9f0004e92ff258b483447d914f42cb7448/src/PostRedirectGet.php') diff --git a/zend-mvc-plugin-prg-8c7ccb9f0004e92ff258b483447d914f42cb7448/src/PostRedirectGet.php b/zend-mvc-plugin-prg-8c7ccb9f0004e92ff258b483447d914f42cb7448/src/PostRedirectGet.php deleted file mode 100644 index 9a6279b..0000000 --- a/zend-mvc-plugin-prg-8c7ccb9f0004e92ff258b483447d914f42cb7448/src/PostRedirectGet.php +++ /dev/null @@ -1,150 +0,0 @@ -getController(); - $request = $controller->getRequest(); - $container = $this->getSessionContainer(); - - if ($request->isPost()) { - $container->setExpirationHops(1, 'post'); - $container->post = $request->getPost()->toArray(); - return $this->redirect($redirect, $redirectToUrl); - } - - if (null !== $container->post) { - $post = $container->post; - unset($container->post); - return $post; - } - - return false; - } - - /** - * @return Container - */ - public function getSessionContainer() - { - if (! $this->sessionContainer) { - $this->sessionContainer = new Container('prg_post1'); - } - return $this->sessionContainer; - } - - /** - * @param Container $container - * @return PostRedirectGet - */ - public function setSessionContainer(Container $container) - { - $this->sessionContainer = $container; - return $this; - } - - /** - * TODO: Good candidate for traits method in PHP 5.4 with FilePostRedirectGet plugin - * - * @param string $redirect - * @param bool $redirectToUrl - * @return \Zend\Http\Response - * @throws RuntimeException if route-based redirection is requested, but no - * plugin manager is composed in the controller. - */ - protected function redirect($redirect, $redirectToUrl) - { - $controller = $this->getController(); - $params = []; - $options = ['query' => $controller->params()->fromQuery()]; - $reuseMatchedParams = false; - - if (null === $redirect) { - $routeMatch = $controller->getEvent()->getRouteMatch(); - - $redirect = $routeMatch->getMatchedRouteName(); - // null indicates to redirect to self. - $reuseMatchedParams = true; - } - - $redirector = $this->marshalRedirectPlugin($controller, $redirectToUrl); - - // Redirect to route-based URL - if (false === $redirectToUrl) { - $response = $redirector->toRoute($redirect, $params, $options, $reuseMatchedParams); - $response->setStatusCode(303); - return $response; - } - - // Redirect to specific URL - $response = $redirector->toUrl($redirect); - $response->setStatusCode(303); - - return $response; - } - - /** - * Marshal a redirect plugin instance. - * - * @param DispatchableInterface $controller - * @param bool $redirectToUrl - * @return Redirect - * @throws RuntimeException if route-based redirection is requested, but no - * plugin manager is composed in the controller. - */ - private function marshalRedirectPlugin(DispatchableInterface $controller, $redirectToUrl) - { - if (method_exists($controller, 'getPluginManager')) { - // get the redirect plugin from the plugin manager - return $controller->getPluginManager()->get('Redirect'); - } - - // If the user wants to redirect to a route, the redirector has to come - // from the plugin manager; otherwise no router will be injected - if (false === $redirectToUrl) { - throw new RuntimeException('Could not redirect to a route without a router'); - } - - return new Redirect(); - } -} -- cgit