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