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

Breadcrumb

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

function PhpFileCleaner::clean

File

vendor/composer/class-map-generator/src/PhpFileCleaner.php, line 73

Class

PhpFileCleaner
@author Jordi Boggiano <j.boggiano@seld.be> @internal

Namespace

Composer\ClassMapGenerator

Code

public function clean() : string {
    $clean = '';
    while ($this->index < $this->len) {
        $this->skipToPhp();
        $clean .= '<?';
        while ($this->index < $this->len) {
            $char = $this->contents[$this->index];
            if ($char === '?' && $this->peek('>')) {
                $clean .= '?>';
                $this->index += 2;
                continue 2;
            }
            if ($char === '"') {
                $this->skipString('"');
                $clean .= 'null';
                continue;
            }
            if ($char === "'") {
                $this->skipString("'");
                $clean .= 'null';
                continue;
            }
            if ($char === "<" && $this->peek('<') && $this->match('{<<<[ \\t]*+([\'"]?)([a-zA-Z_\\x80-\\xff][a-zA-Z0-9_\\x80-\\xff]*+)\\1(?:\\r\\n|\\n|\\r)}A', $match)) {
                $this->index += \strlen($match[0]);
                $this->skipHeredoc($match[2]);
                $clean .= 'null';
                continue;
            }
            if ($char === '/') {
                if ($this->peek('/')) {
                    $this->skipToNewline();
                    continue;
                }
                if ($this->peek('*')) {
                    $this->skipComment();
                    continue;
                }
            }
            if ($this->maxMatches === 1 && isset(self::$typeConfig[$char])) {
                $type = self::$typeConfig[$char];
                if (\substr($this->contents, $this->index, $type['length']) === $type['name'] && Preg::isMatch($type['pattern'], $this->contents, $match, 0, $this->index - 1)) {
                    $clean .= $match[0];
                    return $clean;
                }
            }
            $this->index += 1;
            if ($this->match(self::$restPattern, $match)) {
                $clean .= $char . $match[0];
                $this->index += \strlen($match[0]);
            }
            else {
                $clean .= $char;
            }
        }
    }
    return $clean;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal