Revert "improved autoloader"

This reverts commit cade0f5768.
This commit is contained in:
Timothy Warren 2012-05-22 16:12:04 -04:00
parent cade0f5768
commit 58a8fa48c1
10 changed files with 50 additions and 21 deletions

View File

@ -31,42 +31,67 @@ namespace miniMVC;
* *
* @param string * @param string
*/ */
function _autoload($name) function sys_autoload($name)
{ {
if ($name == '') return; $name = str_replace('miniMVC\\', '', $name);
// strip off namespaces - they all go to the same folder $path = MM_SYS_PATH . "/core/{$name}.php";
$name = strtolower($name); $trait_path = MM_SYS_PATH . "/core/traits/{$name}.php";
$names = explode('\\', trim($name));
$name = end($names);
// Paths to load from if (is_file($path))
$sys_path = MM_SYS_PATH . "core/{$name}.php";
$trait_path = MM_SYS_PATH . "core/traits/{$name}.php";
$lib_path = MM_SYS_PATH . "libraries/{$name}.php";
$class_path = MM_APP_PATH . "classes/{$name}.php";
if (is_file($sys_path))
{ {
require_once($sys_path); require_once($path);
} }
elseif (is_file($trait_path)) elseif (is_file($trait_path))
{ {
require_once($trait_path); require_once($trait_path);
} }
elseif (is_file($lib_path)) }
// --------------------------------------------------------------------------
/**
* Function to autoload libraries/classes
*
* @param string
*/
function autoload($name)
{
// strip off namespaces - they all go to the same folder
$names = explode('\\', $name);
$name = end($names);
// In a subdirectory? No problem
if (strpos("/", $name) !== FALSE)
{ {
require_once($lib_path); $n = explode("/", $name);
$name = $n[count($n) -1];
} }
if (is_file($class_path)) // Try system library first, then app library
$name = strtolower($name);
$path = MM_SYS_PATH . "libraries/{$name}.php";
if ( ! is_file($path))
{ {
require_once($class_path); $path = MM_APP_PATH . "classes/{$name}.php";
}
// Load the class file if need be
if ( ! class_exists($name))
{
if (is_file($path))
{
require_once($path);
}
} }
} }
// Start the autoloader // Load system libraries/traits
spl_autoload_register('miniMVC\_autoload'); spl_autoload_register('miniMVC\sys_autoload');
// Start the library autoloader
spl_autoload_register('miniMVC\autoload');
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// ! Error handling / messages // ! Error handling / messages
@ -440,10 +465,14 @@ function route()
$class = new $controller(); $class = new $controller();
return call_user_func_array([&$class, $func], []); return call_user_func_array([&$class, $func], []);
} }
}
// Function doesn't exist...404 // Function doesn't exist...404
show_404(); show_404();
die();
}
// If it gets here, it's still a 404
show_404();
} }
// End of common.php // End of common.php