Added helpers.php file

- Added updated helpers.php file
- Updated helpers section in documentation.
This commit is contained in:
Simon Sessingø
2017-08-19 13:48:47 +01:00
parent b7f5d31544
commit bc67038e11
2 changed files with 92 additions and 14 deletions
+21 -9
View File
@@ -204,9 +204,9 @@ SimpleRouter::start();
### Helper functions
We recommend that you add these helper functions to your project. Theese will allow you to access functionality of the router more easily.
We recommend that you add these helper functions to your project. These will allow you to access functionality of the router more easily.
To implement the functions below, simply copy the code to a new file and require the file before initializing the router.
To implement the functions below, simply copy the code to a new file and require the file before initializing the router or copy the `helpers.php` we've included in this library.
```php
<?php
@@ -250,10 +250,18 @@ function request()
/**
* Get input class
* @return \Pecee\Http\Input\Input
* @param string|null $index Parameter index name
* @param string|null $defaultValue Default return value
* @param string|array|null $methods Default method
* @return \Pecee\Http\Input\Input|string
*/
function input()
function input($index = null, $defaultValue = null, $methods = null)
{
if($index !== null)
{
return request()->getInput()->get($index, $defaultValue, $methods);
}
return request()->getInput();
}
@@ -825,7 +833,7 @@ If items is grouped in the html, it will return an array of items.
**Note:** `get` will automatically trim the value and ensure that it's not empty. If it's empty the `$defaultValue` will be returned.
```php
$value = input()->get($index, $defaultValue, $methods);
$value = input($index, $defaultValue, $methods);
```
### Get parameter object
@@ -834,7 +842,7 @@ Will return an instance of `InputItem` or `InputFile` depending on the type.
You can use this in your html as it will render the value of the item.
However if you want to compare value in your if statements, you have to use
the `getValue` or use the `input()->get()` instead.
the `getValue` or use the `input()` instead.
If items is grouped in the html, it will return an array of items.
@@ -855,7 +863,11 @@ $object = input()->getObject($index, $defaultValue = null, $methods = null);
* $defaultValue is returned if the value is empty.
*/
$id = input()->get($index, $defaultValue);
$id = input()->get($index, $defaultValue, $method);
# -- shortcut to above --
$id = input($index, $defaultValue, $method);
# -- match specific --
@@ -880,7 +892,7 @@ $object = input()->findFile($index, $defaultValue);
*/
/* @var $image \Pecee\Http\Input\InputFile */
foreach(input()->get('images', []) as $image)
foreach(input('images', []) as $image)
{
if($image->getMime() === 'image/jpeg') {
@@ -926,7 +938,7 @@ Below example requires you to have the helper functions added. Please refer to t
```php
/* Get parameter site_id or default-value 2 from either post-value or query-string */
$siteId = input()->get('site_id', 2, ['post', 'get']);
$siteId = input('site_id', 2, ['post', 'get']);
```
---
+66
View File
@@ -0,0 +1,66 @@
<?php
use Pecee\SimpleRouter\SimpleRouter as Router;
/**
* Get url for a route by using either name/alias, class or method name.
*
* The name parameter supports the following values:
* - Route name
* - Controller/resource name (with or without method)
* - Controller class name
*
* When searching for controller/resource by name, you can use this syntax "route.name@method".
* You can also use the same syntax when searching for a specific controller-class "MyController@home".
* If no arguments is specified, it will return the url for the current loaded route.
*
* @param string|null $name
* @param string|array|null $parameters
* @param array|null $getParams
* @return string
*/
function url($name = null, $parameters = null, $getParams = null)
{
return Router::getUrl($name, $parameters, $getParams);
}
/**
* @return \Pecee\Http\Response
*/
function response()
{
return Router::response();
}
/**
* @return \Pecee\Http\Request
*/
function request()
{
return Router::request();
}
/**
* Get input class
* @param string|null $index Parameter index name
* @param string|null $defaultValue Default return value
* @param string|array|null $methods Default method
* @return \Pecee\Http\Input\Input|string
*/
function input($index = null, $defaultValue = null, $methods = null)
{
if ($index !== null) {
return request()->getInput()->get($index, $defaultValue, $methods);
}
return request()->getInput();
}
function redirect($url, $code = null)
{
if ($code !== null) {
response()->httpCode($code);
}
response()->redirect($url);
}