if (!is_array($folder)) { throw new \Exception('no es un array'); } $this->add($folder); } protected function add($folder) { foreach ($folder as $load) { $this->folder[] = $load; } } protected function loader($classname) { $filename = $classname; foreach ($this->folder as $add) { $test = $add . str_replace("\\", "/", $filename) . '.php'; if (file_exists($test)) { include $test; } else { unset($test); } } } public function run() { spl_autoload_register(array($this, 'loader')); } } $load = new Autoload([APP_PATH . '/src/', APP_PATH . '/app/', APP_PATH . '/Database/']); $load->run();
<?php include '__FOOLPHP_TOOLS__ROOT__/config.php'; $obj = new Autoload(); for ($i = 0; $i < 10; $i++) { $r = $obj->run($application_path, $config_path, $scan_dir); if (true === $r) { break; } } class Autoload { private $filter = array('views'); private $map_value_name = '$fool_php_class_map'; public function run($app_root, $config_root, $scan_dir) { /*{{{*/ $list = array(); foreach ($scan_dir as $_dir) { $_list = $this->scanFile($app_root . '/' . $_dir); if (empty($_list)) { continue; } $list = array_merge($list, $_list); } $tpl = "\t'%s' => '%s',\n"; $content_tpl = "<?php\n/*create by : " . $_SERVER['LOGNAME'] . " on : %s*/\n%s = array(\n%s);\n"; $d = ""; $n = 1; foreach ($list as $class_name => $path) { $d .= sprintf($tpl, $class_name, $path);