Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
types
/
application
/
controllers
:
twig_autoloader.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /* * This file is part of Twig. * * (c) 2009 Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * Autoloads Twig classes. * * This is a modified version of Twig_Autoloader that survives without producing a fatal error even if someone else * includes Twig_Autoloader recklessly, without checking if !class_exists(). When the register() method is being * called, it checks all registered autoloaders. If the native Twig_Autoloader is already there, this class resigns * and doesn't complete it's own registration. * * This will, however, work only if it happens late enough. In Types we assume that it is ok to do this during 'init'. * The one known issue is with older WPML versions that register Twig right when the plugin is loaded. * * Note: Twig_Autoloader is marked as deprecated, however we can't easily use the proposed composer autoloader, since * that breaks the PHP 5.2 compatibility. * * The original author of this class: * @author Fabien Potencier <fabien@symfony.com> * * @since 2.0 */ class Types_Twig_Autoloader { /** * Registers Types_Twig_Autoloader as an SPL autoloader if Twig_Autoloader isn't already registered. * * @param bool $prepend Whether to prepend the autoloader or not. */ public static function register($prepend = false) { $autoloaders = spl_autoload_functions(); foreach( $autoloaders as $autoloader ) { // Resign if we detect Twig_Autoloader if( is_array( $autoloader ) && 2 == count( $autoloader ) && is_string( $autoloader[0] ) && 'Twig_Autoloader' == $autoloader[0] && is_string( $autoloader[1] ) && 'autoload' == $autoloader[1] ) { return; } } if (PHP_VERSION_ID < 50300) { spl_autoload_register(array(__CLASS__, 'autoload')); } else { spl_autoload_register(array(__CLASS__, 'autoload'), true, $prepend); } } /** * Handles autoloading of classes. * * @param string $class A class name. */ public static function autoload($class) { if (0 !== strpos($class, 'Twig')) { return; } // Modified path to Twig in Types. $file = TYPES_ABSPATH . '/vendor/twig/twig/lib/' . str_replace( array( '_', "\0" ), array( '/', '' ), $class .'.php' ); if( is_file( $file ) ) { /** @noinspection PhpIncludeInspection */ require $file; } } }