Twig-1.3.0/lib/Twig/Autoloader.php
changeset 4 9a001a04b634
equal deleted inserted replaced
3:6d109e3804ac 4:9a001a04b634
       
     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 }