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

Breadcrumb

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

function Constraint::compile

Overrides ConstraintInterface::compile

File

vendor/composer/semver/src/Constraint/Constraint.php, line 232

Class

Constraint
Defines a constraint.

Namespace

Composer\Semver\Constraint

Code

public function compile($otherOperator) {
    if (strpos($this->version, 'dev-') === 0) {
        if (self::OP_EQ === $this->operator) {
            if (self::OP_EQ === $otherOperator) {
                return sprintf('$b && $v === %s', \var_export($this->version, true));
            }
            if (self::OP_NE === $otherOperator) {
                return sprintf('!$b || $v !== %s', \var_export($this->version, true));
            }
            return 'false';
        }
        if (self::OP_NE === $this->operator) {
            if (self::OP_EQ === $otherOperator) {
                return sprintf('!$b || $v !== %s', \var_export($this->version, true));
            }
            if (self::OP_NE === $otherOperator) {
                return 'true';
            }
            return '!$b';
        }
        return 'false';
    }
    if (self::OP_EQ === $this->operator) {
        if (self::OP_EQ === $otherOperator) {
            return sprintf('\\version_compare($v, %s, \'==\')', \var_export($this->version, true));
        }
        if (self::OP_NE === $otherOperator) {
            return sprintf('$b || \\version_compare($v, %s, \'!=\')', \var_export($this->version, true));
        }
        return sprintf('!$b && \\version_compare(%s, $v, \'%s\')', \var_export($this->version, true), self::$transOpInt[$otherOperator]);
    }
    if (self::OP_NE === $this->operator) {
        if (self::OP_EQ === $otherOperator) {
            return sprintf('$b || (!$b && \\version_compare($v, %s, \'!=\'))', \var_export($this->version, true));
        }
        if (self::OP_NE === $otherOperator) {
            return 'true';
        }
        return '!$b';
    }
    if (self::OP_LT === $this->operator || self::OP_LE === $this->operator) {
        if (self::OP_LT === $otherOperator || self::OP_LE === $otherOperator) {
            return '!$b';
        }
    }
    else {
        // $this->operator must be self::OP_GT || self::OP_GE here
        if (self::OP_GT === $otherOperator || self::OP_GE === $otherOperator) {
            return '!$b';
        }
    }
    if (self::OP_NE === $otherOperator) {
        return 'true';
    }
    $codeComparison = sprintf('\\version_compare($v, %s, \'%s\')', \var_export($this->version, true), self::$transOpInt[$this->operator]);
    if ($this->operator === self::OP_LE) {
        if ($otherOperator === self::OP_GT) {
            return sprintf('!$b && \\version_compare($v, %s, \'!=\') && ', \var_export($this->version, true)) . $codeComparison;
        }
    }
    elseif ($this->operator === self::OP_GE) {
        if ($otherOperator === self::OP_LT) {
            return sprintf('!$b && \\version_compare($v, %s, \'!=\') && ', \var_export($this->version, true)) . $codeComparison;
        }
    }
    return sprintf('!$b && %s', $codeComparison);
}

API Navigation

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