예제 #1
0
파일: sfCore.class.php 프로젝트: kotow/work
 public static function initSimpleAutoload($dirs)
 {
     require_once dirname(__FILE__) . '/sfFinder.class.php';
     self::$classes = array();
     $finder = sfFinder::type('file')->ignore_version_control()->name('*.php');
     foreach ((array) $dirs as $dir) {
         $files = $finder->in(glob($dir));
         if (is_array($files)) {
             foreach ($files as $file) {
                 preg_match_all('~^\\s*(?:abstract\\s+|final\\s+)?(?:class|interface)\\s+(\\w+)~mi', file_get_contents($file), $classes);
                 foreach ($classes[1] as $class) {
                     self::$classes[$class] = $file;
                 }
             }
         }
     }
     if (function_exists('spl_autoload_register')) {
         ini_set('unserialize_callback_func', 'spl_autoload_call');
         spl_autoload_register(array('sfCore', 'splSimpleAutoload'));
     } elseif (!function_exists('__autoload')) {
         ini_set('unserialize_callback_func', '__autoload');
         function __autoload($class)
         {
             return sfCore::splSimpleAutoload($class);
         }
     }
 }