Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 2 additions & 7 deletions src/Rule/All.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,13 @@ class All extends AbstractRule implements RuleInterface
{
use ValidatableTrait;

private string $message;

/**
* @param RuleInterface[] $constraints
*/
public function __construct(
private readonly array $constraints,
?string $message = null
)
{
$this->message = $message ?? 'At "{{ key }}": {{ message }}';
}
private readonly string $message = 'At "{{ key }}": {{ message }}'
) {}

public function assert(mixed $value, string $name): void
{
Expand Down
24 changes: 5 additions & 19 deletions src/Rule/Choice.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,30 +7,16 @@

class Choice extends AbstractRule implements RuleInterface
{
private string $message;

private string $multipleMessage;

private string $minMessage;

private string $maxMessage;

public function __construct(
private readonly array $constraints,
private readonly bool $multiple = false,
private readonly ?int $minConstraint = null,
private readonly ?int $maxConstraint = null,
?string $message = null,
?string $multipleMessage = null,
?string $minMessage = null,
?string $maxMessage = null
)
{
$this->message = $message ?? 'The "{{ name }}" value is not a valid choice, "{{ value }}" given. Accepted values are: "{{ constraints }}".';
$this->multipleMessage = $multipleMessage ?? 'The "{{ name }}" value has one or more invalid choices, "{{ value }}" given. Accepted values are: "{{ constraints }}".';
$this->minMessage = $minMessage ?? 'The "{{ name }}" value must have at least {{ minConstraint }} choices, {{ numValues }} choices given.';
$this->maxMessage = $maxMessage ?? 'The "{{ name }}" value must have at most {{ maxConstraint }} choices, {{ numValues }} choices given.';
}
private readonly string $message = 'The "{{ name }}" value is not a valid choice, "{{ value }}" given. Accepted values are: "{{ constraints }}".',
private readonly string $multipleMessage = 'The "{{ name }}" value has one or more invalid choices, "{{ value }}" given. Accepted values are: "{{ constraints }}".',
private readonly string $minMessage = 'The "{{ name }}" value must have at least {{ minConstraint }} choices, {{ numValues }} choices given.',
private readonly string $maxMessage = 'The "{{ name }}" value must have at most {{ maxConstraint }} choices, {{ numValues }} choices given.'
) {}

public function assert(mixed $value, string $name): void
{
Expand Down
9 changes: 2 additions & 7 deletions src/Rule/GreaterThan.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,10 @@

class GreaterThan extends AbstractComparisonRule implements RuleInterface
{
protected string $message;

public function __construct(
protected readonly mixed $constraint,
?string $message = null
)
{
$this->message = $message ?? 'The "{{ name }}" value should be greater than "{{ constraint }}", "{{ value }}" given.';
}
protected readonly string $message = 'The "{{ name }}" value should be greater than "{{ constraint }}", "{{ value }}" given.'
) {}

protected function compareValues(mixed $value1, mixed $value2): bool
{
Expand Down
9 changes: 2 additions & 7 deletions src/Rule/GreaterThanOrEqual.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,10 @@

class GreaterThanOrEqual extends AbstractComparisonRule implements RuleInterface
{
protected string $message;

public function __construct(
protected readonly mixed $constraint,
?string $message = null
)
{
$this->message = $message ?? 'The "{{ name }}" value should be greater than or equal to "{{ constraint }}", "{{ value }}" given.';
}
protected readonly string $message = 'The "{{ name }}" value should be greater than or equal to "{{ constraint }}", "{{ value }}" given.'
) {}

protected function compareValues(mixed $value1, mixed $value2): bool
{
Expand Down
9 changes: 2 additions & 7 deletions src/Rule/LessThan.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,10 @@

class LessThan extends AbstractComparisonRule implements RuleInterface
{
protected string $message;

public function __construct(
protected readonly mixed $constraint,
?string $message = null
)
{
$this->message = $message ?? 'The "{{ name }}" value should be less than "{{ constraint }}", "{{ value }}" given.';
}
protected readonly string $message = 'The "{{ name }}" value should be less than "{{ constraint }}", "{{ value }}" given.'
) {}

protected function compareValues(mixed $value1, mixed $value2): bool
{
Expand Down
9 changes: 2 additions & 7 deletions src/Rule/LessThanOrEqual.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,10 @@

class LessThanOrEqual extends AbstractComparisonRule implements RuleInterface
{
protected string $message;

public function __construct(
protected readonly mixed $constraint,
?string $message = null
)
{
$this->message = $message ?? 'The "{{ name }}" value should be less than or equal to "{{ constraint }}", "{{ value }}" given.';
}
protected readonly string $message = 'The "{{ name }}" value should be less than or equal to "{{ constraint }}", "{{ value }}" given.'
) {}

protected function compareValues(mixed $value1, mixed $value2): bool
{
Expand Down
5 changes: 1 addition & 4 deletions src/Rule/NotBlank.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,12 @@ class NotBlank extends AbstractRule implements RuleInterface
// Using array to bypass unallowed callable type in properties
private array $normalizer;

private string $message;

public function __construct(
?callable $normalizer = null,
?string $message = null
private readonly string $message = 'The "{{ name }}" value should not be blank, "{{ value }}" given.'
)
{
$this->normalizer['callable'] = $normalizer;
$this->message = $message ?? 'The "{{ name }}" value should not be blank, "{{ value }}" given.';
}

/**
Expand Down
9 changes: 2 additions & 7 deletions src/Rule/Range.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,11 @@ class Range extends AbstractRule implements RuleInterface
{
use ComparableTrait;

private string $message;

public function __construct(
private readonly mixed $minConstraint,
private readonly mixed $maxConstraint,
?string $message = null
)
{
$this->message = $message ?? 'The "{{ name }}" value should be between "{{ minConstraint }}" and "{{ maxConstraint }}", "{{ value }}" given.';
}
private readonly string $message = 'The "{{ name }}" value should be between "{{ minConstraint }}" and "{{ maxConstraint }}", "{{ value }}" given.'
) {}

public function assert(mixed $value, string $name): void
{
Expand Down