A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							91 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
	
	
							91 lines
						
					
					
						
							2.3 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
/*
 | 
						|
 * This file is part of Twig.
 | 
						|
 *
 | 
						|
 * (c) Fabien Potencier
 | 
						|
 *
 | 
						|
 * For the full copyright and license information, please view the LICENSE
 | 
						|
 * file that was distributed with this source code.
 | 
						|
 */
 | 
						|
 | 
						|
final class Twig_Extension_Escaper extends Twig_Extension
 | 
						|
{
 | 
						|
    private $defaultStrategy;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @param string|false|callable $defaultStrategy An escaping strategy
 | 
						|
     *
 | 
						|
     * @see setDefaultStrategy()
 | 
						|
     */
 | 
						|
    public function __construct($defaultStrategy = 'html')
 | 
						|
    {
 | 
						|
        $this->setDefaultStrategy($defaultStrategy);
 | 
						|
    }
 | 
						|
 | 
						|
    public function getTokenParsers()
 | 
						|
    {
 | 
						|
        return array(new Twig_TokenParser_AutoEscape());
 | 
						|
    }
 | 
						|
 | 
						|
    public function getNodeVisitors()
 | 
						|
    {
 | 
						|
        return array(new Twig_NodeVisitor_Escaper());
 | 
						|
    }
 | 
						|
 | 
						|
    public function getFilters()
 | 
						|
    {
 | 
						|
        return array(
 | 
						|
            new Twig_Filter('raw', 'twig_raw_filter', array('is_safe' => array('all'))),
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Sets the default strategy to use when not defined by the user.
 | 
						|
     *
 | 
						|
     * The strategy can be a valid PHP callback that takes the template
 | 
						|
     * name as an argument and returns the strategy to use.
 | 
						|
     *
 | 
						|
     * @param string|false|callable $defaultStrategy An escaping strategy
 | 
						|
     */
 | 
						|
    public function setDefaultStrategy($defaultStrategy)
 | 
						|
    {
 | 
						|
        if ('name' === $defaultStrategy) {
 | 
						|
            $defaultStrategy = array('Twig_FileExtensionEscapingStrategy', 'guess');
 | 
						|
        }
 | 
						|
 | 
						|
        $this->defaultStrategy = $defaultStrategy;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Gets the default strategy to use when not defined by the user.
 | 
						|
     *
 | 
						|
     * @param string $name The template name
 | 
						|
     *
 | 
						|
     * @return string|false The default strategy to use for the template
 | 
						|
     */
 | 
						|
    public function getDefaultStrategy($name)
 | 
						|
    {
 | 
						|
        // disable string callables to avoid calling a function named html or js,
 | 
						|
        // or any other upcoming escaping strategy
 | 
						|
        if (!is_string($this->defaultStrategy) && false !== $this->defaultStrategy) {
 | 
						|
            return call_user_func($this->defaultStrategy, $name);
 | 
						|
        }
 | 
						|
 | 
						|
        return $this->defaultStrategy;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Marks a variable as being safe.
 | 
						|
 *
 | 
						|
 * @param string $string A PHP variable
 | 
						|
 *
 | 
						|
 * @return string
 | 
						|
 */
 | 
						|
function twig_raw_filter($string)
 | 
						|
{
 | 
						|
    return $string;
 | 
						|
}
 | 
						|
 | 
						|
class_alias('Twig_Extension_Escaper', 'Twig\Extension\EscaperExtension', false);
 | 
						|
 |