Development

- Began work on new documentation.
- BaseCsrfVerifier now only matches `POST`, `PUT` and `DELETE`.
- Parameters are now parsed on custom regex-matches.
- Added `$type` option to `get` method in `Input` class.
This commit is contained in:
Simon Sessingø
2016-11-25 01:53:02 +01:00
parent fb6da37963
commit c6bce8a420
5 changed files with 759 additions and 396 deletions

View File

@@ -189,11 +189,12 @@ class Input
*
* @param string $index
* @param string|null $default
* @param string|null $method
* @return InputItem|string
*/
public function get($index, $default = null)
public function get($index, $default = null, $method = null)
{
$input = $this->getObject($index, $default);
$input = $this->getObject($index, $default, $method);
if ($input instanceof InputItem) {
return (trim($input->getValue()) === '') ? $default : $input->getValue();

View File

@@ -20,7 +20,7 @@ class BaseCsrfVerifier implements IMiddleware
$this->csrfToken = new CsrfToken();
// Generate or get the CSRF-Token from Cookie.
$this->token = (!$this->hasToken()) ? $this->generateToken() : $this->csrfToken->getToken();
$this->token = ($this->hasToken() === false) ? $this->generateToken() : $this->csrfToken->getToken();
}
/**
@@ -58,7 +58,7 @@ class BaseCsrfVerifier implements IMiddleware
public function handle(Request $request, ILoadableRoute &$route = null)
{
if ($request->getMethod() !== 'get' && !$this->skip($request)) {
if (in_array($request->getMethod(), ['post', 'put', 'delete']) === true && $this->skip($request) === false) {
$token = $request->getInput()->get(static::POST_KEY, null, 'post');

View File

@@ -17,7 +17,7 @@ class Request
$this->parseHeaders();
$this->host = $this->getHeader('http-host');;
$this->uri = $this->getHeader('request-uri');
$this->method = strtolower($this->getHeader('request-method'));
$this->method = $this->input->get('_method', strtolower($this->getHeader('request-method')));
$this->input = new Input($this);
}

View File

@@ -19,8 +19,12 @@ class RouteUrl extends LoadableRoute
// Match on custom defined regular expression
if ($this->regex !== null) {
$parameters = [];
if (preg_match('/(' . $this->regex . ')/is', $request->getHost() . $url, $parameters)) {
$this->parameters = (array)$parameters[0];
if (preg_match($this->regex, $request->getHost() . $url, $parameters)) {
/* Remove global match */
if(count($parameters) > 1) {
array_shift($parameters);
$this->parameters = $parameters;
}
return true;
}