getSQL(); $params = array_column(array_map(function (\Doctrine\ORM\Query\Parameter $parameter) { /** @var mixed|\MyCLabs\Enum\Enum $value */ $value = $parameter->getValue(); $type = $parameter->getType(); $name = $parameter->getName(); $value = match ($type) { 'integer' => $value, 2 => "'" . $value->getValue() . "'", default => throw new \UnexpectedValueException("Unhandled type: $type") }; return compact('name', 'value'); }, $query->getParameters()->toArray()), 'value', 'name'); if ($query instanceof \Doctrine\ORM\Query) { preg_match_all('/:(\S+)/', $query->getDQL(), $matches); $sequence = $matches[1] ?? []; $params = $sequence ? array_merge(array_flip($sequence), $params) : $params; } return preg_replace_callback('/\?/', function () use (&$params) { return array_shift($params); }, $sql); }