equal
deleted
inserted
replaced
|
1 <?php |
|
2 |
|
3 /* |
|
4 * This file is part of Twig. |
|
5 * |
|
6 * (c) 2009 Fabien Potencier |
|
7 * |
|
8 * For the full copyright and license information, please view the LICENSE |
|
9 * file that was distributed with this source code. |
|
10 */ |
|
11 |
|
12 /** |
|
13 * Autoloads Twig classes. |
|
14 * |
|
15 * @package twig |
|
16 * @author Fabien Potencier <fabien@symfony.com> |
|
17 */ |
|
18 class Twig_Autoloader |
|
19 { |
|
20 /** |
|
21 * Registers Twig_Autoloader as an SPL autoloader. |
|
22 */ |
|
23 static public function register() |
|
24 { |
|
25 ini_set('unserialize_callback_func', 'spl_autoload_call'); |
|
26 spl_autoload_register(array(new self, 'autoload')); |
|
27 } |
|
28 |
|
29 /** |
|
30 * Handles autoloading of classes. |
|
31 * |
|
32 * @param string $class A class name. |
|
33 * |
|
34 * @return boolean Returns true if the class has been loaded |
|
35 */ |
|
36 static public function autoload($class) |
|
37 { |
|
38 if (0 !== strpos($class, 'Twig')) { |
|
39 return; |
|
40 } |
|
41 |
|
42 if (is_file($file = dirname(__FILE__).'/../'.str_replace(array('_', "\0"), array('/', ''), $class).'.php')) { |
|
43 require $file; |
|
44 } |
|
45 } |
|
46 } |