Commit fd42e0ca by Taylor Otwell

moved route loading into separate function.

parent 9cee4693
......@@ -31,39 +31,11 @@ class Router {
$uri = ($uri != '/') ? '/'.$uri : $uri;
// --------------------------------------------------------------
// If a route directory is being used, load the route file
// corresponding to the first segment of the URI.
// --------------------------------------------------------------
if (is_dir(APP_PATH.'routes'))
{
if ($uri == '/')
{
if ( ! file_exists(APP_PATH.'routes/home'.EXT))
{
throw new \Exception("A [home] route file is required when using a route directory.");
}
static::$routes = require APP_PATH.'routes/home'.EXT;
}
else
{
$segments = explode('/', trim($uri, '/'));
if ( ! file_exists(APP_PATH.'routes/'.$segments[0].EXT))
{
throw new \Exception("No route file defined for routes beginning with [".$segments[0]."]");
}
static::$routes = require APP_PATH.'routes/'.$segments[0].EXT;
}
}
// Load the application routes.
// --------------------------------------------------------------
// If no route directory is being used, we can simply load the
// routes file from the application directory.
// --------------------------------------------------------------
else
if (is_null(static::$routes))
{
static::$routes = require APP_PATH.'routes'.EXT;
static::$routes = static::routes($uri);
}
// --------------------------------------------------------------
......@@ -150,4 +122,49 @@ class Router {
return $parameters;
}
/**
* Load the routes based on the request URI.
*
* @param string $uri
* @return void
*/
private static function routes($uri)
{
// --------------------------------------------------------------
// If a route directory is being used, load the route file
// corresponding to the first segment of the URI.
// --------------------------------------------------------------
if (is_dir(APP_PATH.'routes'))
{
if ($uri == '/')
{
if ( ! file_exists(APP_PATH.'routes/home'.EXT))
{
throw new \Exception("A [home] route file is required when using a route directory.");
}
return require APP_PATH.'routes/home'.EXT;
}
else
{
$segments = explode('/', trim($uri, '/'));
if ( ! file_exists(APP_PATH.'routes/'.$segments[0].EXT))
{
throw new \Exception("No route file defined for routes beginning with [".$segments[0]."]");
}
return require APP_PATH.'routes/'.$segments[0].EXT;
}
}
// --------------------------------------------------------------
// If no route directory is being used, we can simply load the
// routes file from the application directory.
// --------------------------------------------------------------
else
{
return require APP_PATH.'routes'.EXT;
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment