Development

- Optimized Uri class.
- Request class now uses SimpleRouter to get default-namespace as was
originally the intended behavior.
- Documentation changes.
This commit is contained in:
Simon Sessingø
2017-11-26 18:03:14 +01:00
parent 0856caa9de
commit 05f2493304
5 changed files with 43 additions and 70 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ class InputFile implements IInputItem
*/
public static function createFromArray(array $values)
{
if (array_key_exists('index', $values) === false) {
if (isset('index', $values) === false) {
throw new \InvalidArgumentException('Index key is required');
}
+1 -20
View File
@@ -227,26 +227,7 @@ class Request
*/
public function setRewriteRoute(ILoadableRoute $route)
{
$this->rewriteRoute = $route;
$callback = $route->getCallback();
/* Only add default namespace on relative callbacks */
if ($callback === null || $callback[0] !== '\\') {
$namespace = SimpleRouter::getDefaultNamespace();
if ($namespace !== null) {
if ($this->rewriteRoute->getNamespace() !== null) {
$namespace .= '\\' . $this->rewriteRoute->getNamespace();
}
$this->rewriteRoute->setDefaultNamespace($namespace);
}
}
$this->rewriteRoute = SimpleRouter::addDefaultNamespace($route);
return $this;
}
+10 -18
View File
@@ -6,20 +6,20 @@ class Uri
{
private $originalUrl;
private $data = [
'scheme',
'host',
'port',
'user',
'pass',
'path',
'query',
'fragment',
'scheme' => '',
'host' => '',
'port' => '',
'user' => '',
'pass' => '',
'path' => '',
'query' => '',
'fragment' => '',
];
public function __construct($url)
{
$this->originalUrl = $url;
$this->data = array_merge($this->data, $this->parseUrl(urldecode($url)));
$this->data = $this->parseUrl($url) + $this->data;
if (isset($this->data['path']) === true && $this->data['path'] !== '/') {
$this->data['path'] = rtrim($this->data['path'], '/') . '/';
@@ -134,15 +134,7 @@ class Uri
*/
public function parseUrl($url, $component = -1)
{
$encodedUrl = preg_replace_callback(
'%[^:/@?&=#]+%u',
function ($matches) {
return urlencode($matches[0]);
},
$url
);
$parts = parse_url($encodedUrl, $component);
$parts = parse_url(urlencode($url), $component);
if ($parts === false) {
throw new \InvalidArgumentException('Malformed URL: ' . $url);
+1 -1
View File
@@ -420,7 +420,7 @@ class SimpleRouter
* @param IRoute $route
* @return IRoute
*/
protected static function addDefaultNamespace(IRoute $route)
public static function addDefaultNamespace(IRoute $route)
{
if (static::$defaultNamespace !== null) {