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); } } }