src/FileExtensionEscapingStrategy.php
5420a5e3
 <?php
 
037ee672
 /*
  * 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.
  */
5420a5e3
 
037ee672
 namespace Twig;
5420a5e3
 
037ee672
 /**
  * Default autoescaping strategy based on file names.
  *
  * This strategy sets the HTML as the default autoescaping strategy,
  * but changes it based on the template name.
  *
  * Note that there is no runtime performance impact as the
  * default autoescaping strategy is set at compilation time.
  *
  * @author Fabien Potencier <fabien@symfony.com>
  */
 class FileExtensionEscapingStrategy
 {
     /**
      * Guesses the best autoescaping strategy based on the file name.
      *
      * @param string $name The template name
      *
      * @return string|false The escaping strategy name to use or false to disable
      */
     public static function guess($name)
5420a5e3
     {
037ee672
         if (\in_array(substr($name, -1), ['/', '\\'])) {
             return 'html'; // return html for directories
         }
 
         if ('.twig' === substr($name, -5)) {
             $name = substr($name, 0, -5);
         }
 
         $extension = pathinfo($name, PATHINFO_EXTENSION);
 
         switch ($extension) {
             case 'js':
                 return 'js';
 
             case 'css':
                 return 'css';
 
             case 'txt':
                 return false;
 
             default:
                 return 'html';
         }
5420a5e3
     }
 }
037ee672
 
 class_alias('Twig\FileExtensionEscapingStrategy', 'Twig_FileExtensionEscapingStrategy');