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

Breadcrumb

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

function RequireYodaComparisonSniff::process

* @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint *

Parameters

int $comparisonTokenPointer:

Overrides Sniff::process

File

vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/ControlStructures/RequireYodaComparisonSniff.php, line 46

Class

RequireYodaComparisonSniff
Bigger value must be on the right side:

Namespace

SlevomatCodingStandard\Sniffs\ControlStructures

Code

public function process(File $phpcsFile, $comparisonTokenPointer) : void {
    $tokens = $phpcsFile->getTokens();
    $leftSideTokens = YodaHelper::getLeftSideTokens($tokens, $comparisonTokenPointer);
    $rightSideTokens = YodaHelper::getRightSideTokens($tokens, $comparisonTokenPointer);
    $leftDynamism = YodaHelper::getDynamismForTokens($tokens, $leftSideTokens);
    $rightDynamism = YodaHelper::getDynamismForTokens($tokens, $rightSideTokens);
    if ($leftDynamism === null || $rightDynamism === null) {
        return;
    }
    if ($leftDynamism <= $rightDynamism) {
        return;
    }
    if (!$this->alwaysVariableOnRight && $leftDynamism >= 900 && $rightDynamism >= 900) {
        return;
    }
    $fix = $phpcsFile->addFixableError('Yoda comparison is required.', $comparisonTokenPointer, self::CODE_REQUIRED_YODA_COMPARISON);
    if (!$fix || count($leftSideTokens) === 0 || count($rightSideTokens) === 0) {
        return;
    }
    YodaHelper::fix($phpcsFile, $leftSideTokens, $rightSideTokens);
}
RSS feed
Powered by Drupal