Example #1
0
function include_class_file($dir, $class)
{
    if (is_dir($dir) && ($handle = opendir($dir))) {
        while (false !== ($entry = readdir($handle))) {
            // skip any file starting with "."
            if (preg_match('/^\\./', $entry)) {
                continue;
            }
            // loop over
            $target = $dir . DS . $entry;
            if (is_file($target) && $entry == $class . '.class.php') {
                include_once $target;
            } else {
                if (is_dir($target)) {
                    include_class_file($target, $class);
                }
            }
        }
    }
}
Example #2
0
 function class_autoload($class)
 {
     $prefix = substr($class, 0, 3);
     if ('CI_' == $prefix or config_item('subclass_prefix') == $prefix) {
         return;
     }
     $folders = ['controllers', 'core', 'dao', 'models', 'libraries', 'config', 'third_party'];
     foreach ($folders as $dir) {
         if (include_class_file($class, APPPATH . $dir)) {
             return;
         }
     }
     foreach ($folders as $dir) {
         if (!is_dir(APPPATH . $dir)) {
             continue;
         }
         foreach (scandir(APPPATH . $dir) as $sub) {
             if ($sub == '.' || $sub == '..') {
                 continue;
             }
             if (include_class_file($class, APPPATH . $dir . '/' . $sub)) {
                 return;
             }
         }
     }
 }