protected function initializeEscapers()
    {
        $flags = ENT_QUOTES | ENT_SUBSTITUTE;

        $this->escapers = [
            'html' =>
                /**
                 * Runs the PHP function htmlspecialchars on the value passed.
                 *
                 * @param string $value The value to escape
                 *
                 * @return string the escaped value
                 */
                function ($value) use ($flags) {
                    // Numbers and Boolean values get turned into strings which can cause problems
                    // with type comparisons (e.g. === or is_int() etc).
                    return \is_string($value) ? htmlspecialchars($value, $flags, $this->getCharset(), false) : $value;
                },

            'js' =>
                /**
                 * A function that escape all non-alphanumeric characters
                 * into their \xHH or \uHHHH representations.
                 *
                 * @param string $value The value to escape
                 *
                 * @return string the escaped value
                 */
                function ($value) {
                    if ('UTF-8' != $this->getCharset()) {
                        $value = iconv($this->getCharset(), 'UTF-8', $value);
                    }

                    $callback = function ($matches) {
                        $char = $matches[0];

                        // \xHH
                        if (!isset($char[1])) {
                            return '\\x'.substr('00'.bin2hex($char), -2);
                        }

                        // \uHHHH
                        $char = iconv('UTF-8', 'UTF-16BE', $char);

                        return '\\u'.substr('0000'.bin2hex($char), -4);
                    };

                    if (null === $value = preg_replace_callback('#[^\p{L}\p{N} ]#u', $callback, $value)) {
                        throw new \InvalidArgumentException('The string to escape is not a valid UTF-8 string.');
                    }

                    if ('UTF-8' != $this->getCharset()) {
                        $value = iconv('UTF-8', $this->getCharset(), $value);
                    }

                    return $value;
                },
        ];

        self::$escaperCache = [];
    }
protected function initializeEscapers()
    {
        $flags = ENT_QUOTES | ENT_SUBSTITUTE;

        $this->escapers = [
            'html' =>
                /**
                 * Runs the PHP function htmlspecialchars on the value passed.
                 *
                 * @param string $value The value to escape
                 *
                 * @return string the escaped value
                 */
                function ($value) use ($flags) {
                    // Numbers and Boolean values get turned into strings which can cause problems
                    // with type comparisons (e.g. === or is_int() etc).
                    return \is_string($value) ? htmlspecialchars($value, $flags, $this->getCharset(), false) : $value;
                },

            'js' =>
                /**
                 * A function that escape all non-alphanumeric characters
                 * into their \xHH or \uHHHH representations.
                 *
                 * @param string $value The value to escape
                 *
                 * @return string the escaped value
                 */
                function ($value) {
                    if ('UTF-8' != $this->getCharset()) {
                        $value = iconv($this->getCharset(), 'UTF-8', $value);
                    }

                    $callback = function ($matches) {
                        $char = $matches[0];

                        // \xHH
                        if (!isset($char[1])) {
                            return '\\x'.substr('00'.bin2hex($char), -2);
                        }

                        // \uHHHH
                        $char = iconv('UTF-8', 'UTF-16BE', $char);

                        return '\\u'.substr('0000'.bin2hex($char), -4);
                    };

                    if (null === $value = preg_replace_callback('#[^\p{L}\p{N} ]#u', $callback, $value)) {
                        throw new \InvalidArgumentException('The string to escape is not a valid UTF-8 string.');
                    }

                    if ('UTF-8' != $this->getCharset()) {
                        $value = iconv('UTF-8', $this->getCharset(), $value);
                    }

                    return $value;
                },
        ];

        self::$escaperCache = [];
    }
protected function initializeEscapers ( ) { $ flags = ENT_QUOTES | ENT_SUBSTITUTE ; $ this -> escapers = [ 'html' => /**
                 * Runs the PHP function htmlspecialchars on the value passed.
                 *
                 * @param string $value The value to escape
                 *
                 * @return string the escaped value
                 */ function ( $ value ) use ( $ flags ) { // Numbers and Boolean values get turned into strings which can cause problems // with type comparisons (e.g. === or is_int() etc). return \ is_string ( $ value ) ? htmlspecialchars ( $ value , $ flags , $ this -> getCharset ( ) , false ) : $ value ; } , 'js' => /**
                 * A function that escape all non-alphanumeric characters
                 * into their \xHH or \uHHHH representations.
                 *
                 * @param string $value The value to escape
                 *
                 * @return string the escaped value
                 */ function ( $ value ) { if ( 'UTF-8' != $ this -> getCharset ( ) ) { $ value = iconv ( $ this -> getCharset ( ) , 'UTF-8' , $ value ) ; } $ callback = function ( $ matches ) { $ char = $ matches [ 0 ] ; // \xHH if ( ! isset ( $ char [ 1 ] ) ) { return '\\x' . substr ( '00' . bin2hex ( $ char ) , - 2 ) ; } // \uHHHH $ char = iconv ( 'UTF-8' , 'UTF-16BE' , $ char ) ; return '\\u' . substr ( '0000' . bin2hex ( $ char ) , - 4 ) ; } ; if ( null === $ value = preg_replace_callback ( '#[^\p{L}\p{N} ]#u' , $ callback , $ value ) ) { throw new \ InvalidArgumentException ( 'The string to escape is not a valid UTF-8 string.' ) ; } if ( 'UTF-8' != $ this -> getCharset ( ) ) { $ value = iconv ( 'UTF-8' , $ this -> getCharset ( ) , $ value ) ; } return $ value ; } , ] ; self :: $ escaperCache = [ ] ; }
Initializes the built-in escapers.

Each function specifies a way for applying a transformation to a string
passed to it. The purpose is for the string to be "escaped" so it is
suitable for the format it is being displayed in.

For example, the string: "It's required that you enter a username & password.\n"
If this were to be displayed as HTML it would be sensible to turn the
ampersand into '&amp;' and the apostrophe into '&aps;'. However if it were
going to be used as a string in JavaScript to be displayed in an alert box
it would be right to leave the string as-is, but c-escape the apostrophe and
the new line.

For each function there is a define to avoid problems with strings being
incorrectly specified.
Initializes the built - in escapers .