FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
mailpoet
/
vendor-prefixed
/
doctrine
/
orm
/
src
/
Persisters
Edit File: SqlExpressionVisitor.php
<?php declare (strict_types=1); namespace MailPoetVendor\Doctrine\ORM\Persisters; if (!defined('ABSPATH')) exit; use MailPoetVendor\Doctrine\Common\Collections\Expr\Comparison; use MailPoetVendor\Doctrine\Common\Collections\Expr\CompositeExpression; use MailPoetVendor\Doctrine\Common\Collections\Expr\ExpressionVisitor; use MailPoetVendor\Doctrine\Common\Collections\Expr\Value; use MailPoetVendor\Doctrine\ORM\Mapping\ClassMetadata; use MailPoetVendor\Doctrine\ORM\Persisters\Entity\BasicEntityPersister; use RuntimeException; use function defined; use function implode; use function in_array; use function is_object; class SqlExpressionVisitor extends ExpressionVisitor { private $persister; private $classMetadata; public function __construct(BasicEntityPersister $persister, ClassMetadata $classMetadata) { $this->persister = $persister; $this->classMetadata = $classMetadata; } public function walkComparison(Comparison $comparison) { $field = $comparison->getField(); $value = $comparison->getValue()->getValue(); // shortcut for walkValue() if (isset($this->classMetadata->associationMappings[$field]) && $value !== null && !is_object($value) && !in_array($comparison->getOperator(), [Comparison::IN, Comparison::NIN], \true)) { throw MatchingAssociationFieldRequiresObject::fromClassAndAssociation($this->classMetadata->name, $field); } return $this->persister->getSelectConditionStatementSQL($field, $value, null, $comparison->getOperator()); } public function walkCompositeExpression(CompositeExpression $expr) { $expressionList = []; foreach ($expr->getExpressionList() as $child) { $expressionList[] = $this->dispatch($child); } switch ($expr->getType()) { case CompositeExpression::TYPE_AND: return '(' . implode(' AND ', $expressionList) . ')'; case CompositeExpression::TYPE_OR: return '(' . implode(' OR ', $expressionList) . ')'; default: // Multiversion support for `doctrine/collections` before and after v2.1.0 if (defined(CompositeExpression::class . '::TYPE_NOT') && $expr->getType() === CompositeExpression::TYPE_NOT) { return 'NOT (' . $expressionList[0] . ')'; } throw new RuntimeException('Unknown composite ' . $expr->getType()); } } public function walkValue(Value $value) { return '?'; } }
Save
Back