Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. FileExtensionEscapingStrategy.php

class FileExtensionEscapingStrategy

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>

Hierarchy

  • class \Twig\FileExtensionEscapingStrategy

Expanded class hierarchy of FileExtensionEscapingStrategy

1 file declares its use of FileExtensionEscapingStrategy
EscaperExtension.php in vendor/twig/twig/src/Extension/EscaperExtension.php

File

vendor/twig/twig/src/FileExtensionEscapingStrategy.php, line 25

Namespace

Twig
View source
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(string $name) {
        if (\in_array(substr($name, -1), [
            '/',
            '\\',
        ])) {
            return 'html';
            // return html for directories
        }
        if (str_ends_with($name, '.twig')) {
            $name = substr($name, 0, -5);
        }
        $extension = pathinfo($name, \PATHINFO_EXTENSION);
        switch ($extension) {
            case 'js':
            case 'json':
                return 'js';
            case 'css':
                return 'css';
            case 'txt':
                return false;
            default:
                return 'html';
        }
    }

}

Members

Title Sort descending Modifiers Object type Summary
FileExtensionEscapingStrategy::guess public static function Guesses the best autoescaping strategy based on the file name.
RSS feed
Powered by Drupal