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

Breadcrumb

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

function Fixer::fixFile

Attempt to fix the file by processing it until no fixes are made.

Return value

boolean

File

vendor/squizlabs/php_codesniffer/src/Fixer.php, line 141

Class

Fixer

Namespace

PHP_CodeSniffer

Code

public function fixFile() {
    $fixable = $this->currentFile
        ->getFixableCount();
    if ($fixable === 0) {
        // Nothing to fix.
        return false;
    }
    $this->enabled = true;
    $this->loops = 0;
    while ($this->loops < 50) {
        ob_start();
        // Only needed once file content has changed.
        $contents = $this->getContents();
        if (PHP_CODESNIFFER_VERBOSITY > 2) {
            @ob_end_clean();
            echo '---START FILE CONTENT---' . PHP_EOL;
            $lines = explode($this->currentFile->eolChar, $contents);
            $max = strlen(count($lines));
            foreach ($lines as $lineNum => $line) {
                $lineNum++;
                echo str_pad($lineNum, $max, ' ', STR_PAD_LEFT) . '|' . $line . PHP_EOL;
            }
            echo '--- END FILE CONTENT ---' . PHP_EOL;
            ob_start();
        }
        $this->inConflict = false;
        $this->currentFile->ruleset
            ->populateTokenListeners();
        $this->currentFile
            ->setContent($contents);
        $this->currentFile
            ->process();
        ob_end_clean();
        $this->loops++;
        if (PHP_CODESNIFFER_CBF === true && PHP_CODESNIFFER_VERBOSITY > 0) {
            echo "\r" . str_repeat(' ', 80) . "\r";
            echo "\t=> Fixing file: {$this->numFixes}/{$fixable} violations remaining [made {$this->loops} pass";
            if ($this->loops > 1) {
                echo 'es';
            }
            echo ']... ';
            if (PHP_CODESNIFFER_VERBOSITY > 1) {
                echo PHP_EOL;
            }
        }
        if ($this->numFixes === 0 && $this->inConflict === false) {
            // Nothing left to do.
            break;
        }
        else {
            if (PHP_CODESNIFFER_VERBOSITY > 1) {
                echo "\t* fixed {$this->numFixes} violations, starting loop " . ($this->loops + 1) . ' *' . PHP_EOL;
            }
        }
    }
    
    //end while
    $this->enabled = false;
    if ($this->numFixes > 0) {
        if (PHP_CODESNIFFER_VERBOSITY > 1) {
            if (ob_get_level() > 0) {
                ob_end_clean();
            }
            echo "\t*** Reached maximum number of loops with {$this->numFixes} violations left unfixed ***" . PHP_EOL;
            ob_start();
        }
        return false;
    }
    return true;
}
RSS feed
Powered by Drupal