From c0c8108399d8c8c2fe761dd357cfae01f4f8c8ba Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Mon, 31 Oct 2011 23:58:45 -0500 Subject: [PATCH] refactoring the autoloader. --- laravel/autoloader.php | 18 ++++++++---------- laravel/bootstrap/core.php | 2 +- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/laravel/autoloader.php b/laravel/autoloader.php index c1c74672..f4547e26 100644 --- a/laravel/autoloader.php +++ b/laravel/autoloader.php @@ -7,14 +7,14 @@ class Autoloader { * * @var array */ - protected $libraries = array(); + protected static $libraries = array(); /** * The paths to be searched by the auto-loader. * * @var array */ - protected $paths = array(BASE_PATH, MODEL_PATH, LIBRARY_PATH); + protected static $paths = array(BASE_PATH, MODEL_PATH, LIBRARY_PATH); /** * Load the file corresponding to a given class. @@ -22,7 +22,7 @@ class Autoloader { * @param string $class * @return void */ - public function load($class) + public static function load($class) { // Most of the core classes are aliases for convenient access in spite of // the namespace. If an alias is defined for the class, we will load the @@ -32,11 +32,9 @@ class Autoloader { return class_alias(Config::$items['application']['aliases'][$class], $class); } - if ( ! is_null($path = $this->find($class))) + if ( ! is_null($path = static::find($class))) { require $path; - - $this->mappings[$class] = $path; } } @@ -46,7 +44,7 @@ class Autoloader { * @param string $class * @return string */ - protected function find($class) + protected static function find($class) { $file = str_replace('\\', '/', $class); @@ -56,12 +54,12 @@ class Autoloader { // library is PSR-0 compliant, and we will load it following those standards. // This allows us to add many third-party libraries to an application and be // able to auto-load them automatically. - if (array_key_exists($namespace, $this->libraries)) + if (array_key_exists($namespace, static::$libraries)) { return LIBRARY_PATH.str_replace('_', '/', $file); } - foreach ($this->paths as $path) + foreach (static::$paths as $path) { if (file_exists($path = $path.strtolower($file).EXT)) { @@ -74,7 +72,7 @@ class Autoloader { // libraries and load the class accordingly. if (is_dir(LIBRARY_PATH.$namespace)) { - $this->libraries[] = $namespace; + static::$libraries[] = $namespace; return LIBRARY_PATH.str_replace('_', '/', $file); } diff --git a/laravel/bootstrap/core.php b/laravel/bootstrap/core.php index 56e489a9..4a41ab66 100644 --- a/laravel/bootstrap/core.php +++ b/laravel/bootstrap/core.php @@ -16,7 +16,7 @@ IoC::bootstrap(); $loader = new Autoloader; -spl_autoload_register(array($loader, 'load')); +spl_autoload_register(array('Laravel\\Autoloader', 'load')); function e($value) {