Project

General

Profile

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
 * @author Fabien Potencier <fabien@symfony.com>
16
 */
17
class Twig_Autoloader
18
{
19
    /**
20
     * Registers Twig_Autoloader as an SPL autoloader.
21
     *
22
     * @param Boolean $prepend Whether to prepend the autoloader or not.
23
     */
24
    public static function register($prepend = false)
25
    {
26
        if (version_compare(phpversion(), '5.3.0', '>=')) {
27
            spl_autoload_register(array(new self, 'autoload'), true, $prepend);
28
        } else {
29
            spl_autoload_register(array(new self, 'autoload'));
30
        }
31
    }
32

    
33
    /**
34
     * Handles autoloading of classes.
35
     *
36
     * @param string $class A class name.
37
     */
38
    public static function autoload($class)
39
    {
40
        if (0 !== strpos($class, 'Twig')) {
41
            return;
42
        }
43

    
44
        if (is_file($file = dirname(__FILE__).'/../'.str_replace(array('_', "\0"), array('/', ''), $class).'.php')) {
45
            require $file;
46
        }
47
    }
48
}
(1-1/40)