diff --git a/src/Pecee/Http/Request.php b/src/Pecee/Http/Request.php index 69a3021..31c101e 100644 --- a/src/Pecee/Http/Request.php +++ b/src/Pecee/Http/Request.php @@ -93,7 +93,7 @@ class Request { * @return string */ public function getIp() { - return isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; + return ((isset($_SERVER['HTTP_X_FORWARDED_FOR']) && strlen($_SERVER['HTTP_X_FORWARDED_FOR'])) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']); } /** diff --git a/src/Pecee/SimpleRouter/RouterBase.php b/src/Pecee/SimpleRouter/RouterBase.php index b7b775b..eb1264a 100644 --- a/src/Pecee/SimpleRouter/RouterBase.php +++ b/src/Pecee/SimpleRouter/RouterBase.php @@ -213,9 +213,11 @@ class RouterBase { /** * @param string $defaultNamespace + * @return static */ public function setDefaultNamespace($defaultNamespace) { $this->defaultNamespace = $defaultNamespace; + return $this; } /** diff --git a/src/Pecee/SimpleRouter/SimpleRouter.php b/src/Pecee/SimpleRouter/SimpleRouter.php index f8a7653..aca2cfb 100644 --- a/src/Pecee/SimpleRouter/SimpleRouter.php +++ b/src/Pecee/SimpleRouter/SimpleRouter.php @@ -19,9 +19,7 @@ class SimpleRouter { * @throws \Pecee\Exception\RouterException */ public static function start($defaultNamespace = null) { - $router = RouterBase::getInstance(); - $router->setDefaultNamespace($defaultNamespace); - $router->routeRequest(); + RouterBase::getInstance()->setDefaultNamespace($defaultNamespace)->routeRequest(); } /** @@ -37,47 +35,19 @@ class SimpleRouter { } public static function get($url, $callback, array $settings = null) { - $route = new RouterRoute($url, $callback); - $route->addSettings($settings); - $route->setRequestMethods(array(RouterRoute::REQUEST_TYPE_GET)); - - $router = RouterBase::getInstance(); - $router->addRoute($route); - - return $route; + return self::match(['get'], $url, $callback, $settings); } public static function post($url, $callback, array $settings = null) { - $route = new RouterRoute($url, $callback); - $route->addSettings($settings); - $route->setRequestMethods(array(RouterRoute::REQUEST_TYPE_POST)); - - $router = RouterBase::getInstance(); - $router->addRoute($route); - - return $route; + return self::match(['post'], $url, $callback, $settings); } public static function put($url, $callback, array $settings = null) { - $route = new RouterRoute($url, $callback); - $route->addSettings($settings); - $route->setRequestMethods(array(RouterRoute::REQUEST_TYPE_PUT, RouterRoute::REQUEST_TYPE_PATCH)); - - $router = RouterBase::getInstance(); - $router->addRoute($route); - - return $route; + return self::match(['put'], $url, $callback, $settings); } public static function delete($url, $callback, array $settings = null) { - $route = new RouterRoute($url, $callback); - $route->addSettings($settings); - $route->setRequestMethods(array(RouterRoute::REQUEST_TYPE_DELETE)); - - $router = RouterBase::getInstance(); - $router->addRoute($route); - - return $route; + return self::match(['delete'], $url, $callback, $settings); } public static function group($settings = array(), $callback) { @@ -88,8 +58,7 @@ class SimpleRouter { $group->setSettings($settings); } - $router = RouterBase::getInstance(); - $router->addRoute($group); + RouterBase::getInstance()->addRoute($group); return $group; } @@ -109,37 +78,48 @@ class SimpleRouter { public static function match(array $requestMethods, $url, $callback, array $settings = null) { $route = new RouterRoute($url, $callback); $route->setRequestMethods($requestMethods); - $route->addSettings($settings); - $router = RouterBase::getInstance(); - $router->addRoute($route); + if($settings !== null) { + $route->addSettings($settings); + } + + RouterBase::getInstance()->addRoute($route); return $route; } public static function all($url, $callback, array $settings = null) { $route = new RouterRoute($url, $callback); - $route->addSettings($settings); - $router = RouterBase::getInstance(); - $router->addRoute($route); + + if($settings !== null) { + $route->addSettings($settings); + } + + RouterBase::getInstance()->addRoute($route); return $route; } public static function controller($url, $controller, array $settings = null) { $route = new RouterController($url, $controller); - $route->addSettings($settings); - $router = RouterBase::getInstance(); - $router->addRoute($route); + + if($settings !== null) { + $route->addSettings($settings); + } + + RouterBase::getInstance()->addRoute($route); return $route; } public static function resource($url, $controller, array $settings = null) { $route = new RouterResource($url, $controller); - $route->addSettings($settings); - $router = RouterBase::getInstance(); - $router->addRoute($route); + + if($settings !== null) { + $route->addSettings($settings); + } + + RouterBase::getInstance()->addRoute($route); return $route; }