PhpBench\Extensions\Dbal\Storage\Driver\Dbal\Visitor\SqlVisitor::visitComparison PHP Метод

visitComparison() приватный Метод

private visitComparison ( Comparison $comparison )
$comparison PhpBench\Expression\Constraint\Comparison
    private function visitComparison(Comparison $comparison)
    {
        $fieldName = $comparison->getField();
        if (preg_match('{param\\[.*\\]}', $fieldName)) {
            $fieldName = 'param';
        }
        if (!isset($this->fieldMap[$fieldName])) {
            throw new \InvalidArgumentException(sprintf('Unknown field "%s", allowed fields: "%s"', $fieldName, implode('", "', array_keys($this->fieldMap))));
        }
        if (!array_key_exists($comparison->getComparator(), $this->comparatorMap)) {
            throw new \InvalidArgumentException(sprintf('Unsupported comparator "%s"', $comparison->getComparator()));
        }
        $comparator = $comparison->getComparator();
        $fieldName = $this->fieldMap[$fieldName];
        if ($comparator == '$in') {
            return $this->visitComparatorIn($fieldName, $comparison);
        }
        if ($fieldName === 'param') {
            return $this->visitParam($comparison);
        }
        $comparator = $this->getComparatorSql($comparison);
        $paramName = $this->registerParamValue($comparison->getValue());
        return sprintf('%s %s :%s', $fieldName, $comparator, $paramName);
    }