welcome back to dyb-tech
This commit is contained in:
+23
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\Migrations\Query\Exception;
|
||||
|
||||
use Doctrine\Migrations\Exception\MigrationException;
|
||||
use InvalidArgumentException;
|
||||
|
||||
use function sprintf;
|
||||
|
||||
class InvalidArguments extends InvalidArgumentException implements MigrationException
|
||||
{
|
||||
public static function wrongTypesArgumentCount(string $statement, int $parameters, int $types): self
|
||||
{
|
||||
return new self(sprintf(
|
||||
'The number of types (%s) is higher than the number of passed parameters (%s) for the query "%s".',
|
||||
$types,
|
||||
$parameters,
|
||||
$statement,
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\Migrations\Query;
|
||||
|
||||
use Doctrine\Migrations\Query\Exception\InvalidArguments;
|
||||
use Stringable;
|
||||
|
||||
use function count;
|
||||
|
||||
/**
|
||||
* The Query wraps the sql query, parameters and types.
|
||||
*/
|
||||
final class Query implements Stringable
|
||||
{
|
||||
/**
|
||||
* @param mixed[] $parameters
|
||||
* @param mixed[] $types
|
||||
*/
|
||||
public function __construct(
|
||||
private readonly string $statement,
|
||||
private readonly array $parameters = [],
|
||||
private readonly array $types = [],
|
||||
) {
|
||||
if (count($types) > count($parameters)) {
|
||||
throw InvalidArguments::wrongTypesArgumentCount($statement, count($parameters), count($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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user