diff --git a/system/cache.php b/system/cache.php index 4bdd1185..30e541b8 100644 --- a/system/cache.php +++ b/system/cache.php @@ -9,13 +9,6 @@ class Cache { */ public static $drivers = array(); - /** - * All of the items retrieved by the cache drivers. - * - * @var array - */ - public static $items = array(); - /** * Get a cache driver instance. If no driver name is specified, the default * cache driver will be returned as defined in the cache configuration file. @@ -66,9 +59,9 @@ class Cache { */ public static function get($key, $default = null, $driver = null) { - if (isset(static::$items[$driver][$key])) + if (is_null($driver)) { - return static::$items[$driver][$key]; + $driver = Config::get('cache.driver'); } if (is_null($item = static::driver($driver)->get($key))) @@ -76,7 +69,7 @@ class Cache { return is_callable($default) ? call_user_func($default) : $default; } - return static::$items[$driver][$key] = $item; + return $item; } /** @@ -91,7 +84,7 @@ class Cache { */ public static function remember($key, $default, $minutes, $driver = null) { - if ( ! is_null($item = static::get($key))) + if ( ! is_null($item = static::get($key, null, $driver))) { return $item; } diff --git a/system/db/connector.php b/system/db/connector.php index 95e2a3b4..a068637f 100644 --- a/system/db/connector.php +++ b/system/db/connector.php @@ -65,10 +65,8 @@ class Connector { { return new \PDO('sqlite:'.$config->database, null, null, $this->options); } - else - { - throw new \Exception("SQLite database [".$config->database."] could not be found."); - } + + throw new \Exception("SQLite database [".$config->database."] could not be found."); } /** diff --git a/system/routing/loader.php b/system/routing/loader.php index e5de1f0b..cff3a5db 100644 --- a/system/routing/loader.php +++ b/system/routing/loader.php @@ -9,6 +9,24 @@ class Loader { */ private static $routes; + /** + * The path where the routes are located. + * + * @var string + */ + public $path; + + /** + * Create a new route loader instance. + * + * @param string $path + * @return void + */ + public function __construct($path) + { + $this->path = $path; + } + /** * Load the appropriate routes for the request URI. * @@ -17,9 +35,14 @@ class Loader { */ public function load($uri) { - $base = require APP_PATH.'routes'.EXT; + $base = require $this->path.'routes'.EXT; - return (is_dir(APP_PATH.'routes') and $uri != '') ? array_merge($this->load_nested_routes($uri), $base) : $base; + if ( ! is_dir($this->path.'routes') or $uri == '') + { + return $base; + } + + return array_merge($this->load_nested_routes($uri), $base); } /** @@ -36,7 +59,7 @@ class Loader { // matching route file in the routes directory. foreach (array_reverse($segments, true) as $key => $value) { - if (file_exists($path = ROUTE_PATH.implode('/', array_slice($segments, 0, $key + 1)).EXT)) + if (file_exists($path = $this->path.'routes/'.implode('/', array_slice($segments, 0, $key + 1)).EXT)) { return require $path; } @@ -51,20 +74,23 @@ class Loader { * To improve performance, this operation will only be performed once. The routes * will be cached and returned on every subsequent call. * - * @param bool $reload + * @param bool $reload + * @param string $path * @return array */ - public static function everything($reload = false) + public static function all($reload = false, $path = null) { if ( ! is_null(static::$routes) and ! $reload) return static::$routes; - $routes = require APP_PATH.'routes'.EXT; + if (is_null($path)) $path = APP_PATH; - if (is_dir(APP_PATH.'routes')) + $routes = require $path.'routes'.EXT; + + if (is_dir($path.'routes')) { // Since route files can be nested deep within the route directory, we need to // recursively spin through the directory to find every file. - $directoryIterator = new \RecursiveDirectoryIterator(APP_PATH.'routes'); + $directoryIterator = new \RecursiveDirectoryIterator($path.'routes'); $recursiveIterator = new \RecursiveIteratorIterator($directoryIterator, \RecursiveIteratorIterator::SELF_FIRST); diff --git a/system/url.php b/system/url.php index df1b47fd..20a3c874 100644 --- a/system/url.php +++ b/system/url.php @@ -71,7 +71,7 @@ class URL { */ public static function to_route($name, $parameters = array(), $https = false) { - if ( ! is_null($route = Routing\Finder::find($name, Routing\Loader::everything()))) + if ( ! is_null($route = Routing\Finder::find($name, Routing\Loader::all()))) { $uris = explode(', ', key($route));