diff options
Diffstat (limited to 'zend-mvc-plugin-prg-8c7ccb9f0004e92ff258b483447d914f42cb7448/doc/book/index.html')
-rw-r--r-- | zend-mvc-plugin-prg-8c7ccb9f0004e92ff258b483447d914f42cb7448/doc/book/index.html | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/zend-mvc-plugin-prg-8c7ccb9f0004e92ff258b483447d914f42cb7448/doc/book/index.html b/zend-mvc-plugin-prg-8c7ccb9f0004e92ff258b483447d914f42cb7448/doc/book/index.html new file mode 100644 index 0000000..64f69c9 --- /dev/null +++ b/zend-mvc-plugin-prg-8c7ccb9f0004e92ff258b483447d914f42cb7448/doc/book/index.html @@ -0,0 +1,93 @@ +<div class="container"> + <div class="jumbotron"> + <h1>zend-mvc-plugin-prg</h1> + + <p>Post/Redirect/Get plugin for zend-mvc controllers.</p> + + <pre><code class="language-bash">$ composer require zendframework/zend-mvc-plugin-prg</code></pre> + </div> +</div> + +<div class="container"> + <div class="row"> + <div class="col-xs-12 col-sm-6"> + <div class="panel panel-info"> + <div class="panel-heading"> + <h2 class="panel-title">Installation</h2> + </div> + + <div class="panel-body"> + <p> + Install via composer: + </p> + + <pre><code class="lang-bash" data-trim> +$ composer require zendframework/zend-mvc-plugin-prg + </code></pre> + + <p> + If you are using the <a href="https://zendframework.github.io/zend-component-installer">zend-component-installer</a>, + you're done! + </p> + + <p> + If not, you will need to add the component as a module to your + application. Add the entry <code>'Zend\Mvc\Plugin\Prg'</code> to + your list of modules in your application configuration (typically + one of <code>config/application.config.php</code> or + <code>config/modules.config.php</code>). + </p> + </div> + </div> + </div> + + <div class="col-xs-12 col-sm-6"> + <h2>Usage</h2> + + <p> + When a user sends a POST request (e.g. after submitting a form), their + browser will try to protect them from sending the POST again, breaking + the back button, causing browser warnings and pop-ups, and sometimes + reposting the form. Instead, when receiving a POST, we should store the + data in a session container and redirect the user to a GET request. + </p> + + <p>This plugin can be invoked with two arguments:</p> + + <ul> + <li><code>$redirect</code>, a string containing the redirect location, + which can either be a named route or a URL, based on the contents of + the second parameter.</li> + <li><code>$redirectToUrl</code>, a boolean that when set to + <code>TRUE</code>, causes the first parameter to be treated as a URL + instead of a route name (this is required when redirecting to a URL + instead of a route). This argument defaults to <code>FALSE</code>.</li> + </ul> + + <p>When no arguments are provided, the current matched route is used.</p> + + <h3>Example Usage</h3> + + <pre><code class="lang-php" data-trim> +// Pass in the route/url you want to redirect to after the POST +$prg = $this->prg('/user/register', true); + +if ($prg instanceof \Zend\Http\PhpEnvironment\Response) { + // Returned a response to redirect us. + return $prg; +} + +if ($prg === false) { + // This wasn't a POST request, but there were no params in the flash + // messenger; this is probably the first time the form was loaded. + return ['form' => $myForm]; +} + +// $prg is an array containing the POST params from the previous request +$form->setData($prg); + +// ... your form processing code here + </code></pre> + </div> + </div> +</div> |