61 lines
1.2 KiB
PHP
61 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Doctrine\Migrations\Query;
|
|
|
|
use Doctrine\Migrations\Query\Exception\InvalidArguments;
|
|
|
|
use function count;
|
|
|
|
/**
|
|
* The Query wraps the sql query, parameters and types.
|
|
*/
|
|
final class Query
|
|
{
|
|
private string $statement;
|
|
|
|
/** @var mixed[] */
|
|
private array $parameters;
|
|
|
|
/** @var mixed[] */
|
|
private array $types;
|
|
|
|
/**
|
|
* @param mixed[] $parameters
|
|
* @param mixed[] $types
|
|
*/
|
|
public function __construct(string $statement, array $parameters = [], array $types = [])
|
|
{
|
|
if (count($types) > count($parameters)) {
|
|
throw InvalidArguments::wrongTypesArgumentCount($statement, count($parameters), count($types));
|
|
}
|
|
|
|
$this->statement = $statement;
|
|
$this->parameters = $parameters;
|
|
$this->types = $types;
|
|
}
|
|
|
|
public function __toString(): string
|
|
{
|
|
return $this->statement;
|
|
}
|
|
|
|
public function getStatement(): string
|
|
{
|
|
return $this->statement;
|
|
}
|
|
|
|
/** @return mixed[] */
|
|
public function getParameters(): array
|
|
{
|
|
return $this->parameters;
|
|
}
|
|
|
|
/** @return mixed[] */
|
|
public function getTypes(): array
|
|
{
|
|
return $this->types;
|
|
}
|
|
}
|