refactoring auto-loader.

This commit is contained in:
Taylor Otwell 2011-07-10 23:45:38 -05:00
parent 9624d275a4
commit 15328afa4d
1 changed files with 3 additions and 18 deletions

View File

@ -2,46 +2,31 @@
/** /**
* This function is registered on the auto-loader stack by the front controller. * This function is registered on the auto-loader stack by the front controller.
*
* All namespace slashes will be replaced with directory slashes since all Laravel
* system classes are organized using a namespace to directory convention.
*/ */
return function($class) { return function($class) {
// ----------------------------------------------------------
// Replace namespace slashes with directory slashes.
// ----------------------------------------------------------
$file = strtolower(str_replace('\\', '/', $class)); $file = strtolower(str_replace('\\', '/', $class));
// ----------------------------------------------------------
// Should the class be aliased?
// ----------------------------------------------------------
if (array_key_exists($class, $aliases = System\Config::get('aliases'))) if (array_key_exists($class, $aliases = System\Config::get('aliases')))
{ {
return class_alias($aliases[$class], $class); return class_alias($aliases[$class], $class);
} }
// ----------------------------------------------------------
// Is the class a Laravel framework class?
// ----------------------------------------------------------
if (file_exists($path = BASE_PATH.$file.EXT)) if (file_exists($path = BASE_PATH.$file.EXT))
{ {
require $path; require $path;
} }
// ----------------------------------------------------------
// Is the class in the application/models directory?
// ----------------------------------------------------------
elseif (file_exists($path = APP_PATH.'models/'.$file.EXT)) elseif (file_exists($path = APP_PATH.'models/'.$file.EXT))
{ {
require $path; require $path;
} }
// ----------------------------------------------------------
// Is the class in the application/libraries directory?
// ----------------------------------------------------------
elseif (file_exists($path = APP_PATH.'libraries/'.$file.EXT)) elseif (file_exists($path = APP_PATH.'libraries/'.$file.EXT))
{ {
require $path; require $path;
} }
// ----------------------------------------------------------
// Is the class anywhere in the application directory?
// ----------------------------------------------------------
elseif (file_exists($path = APP_PATH.$file.EXT)) elseif (file_exists($path = APP_PATH.$file.EXT))
{ {
require $path; require $path;