Skip to content

Commit e84d15f

Browse files
committed
Rename Composite to LogicalComposite
Rename the Composite class to LogicalComposite to more accurately reflect its purpose as a validator that combines child validators using logical operations (AND, OR, NAND, XOR). This better naming also opens the door for additional composite patterns beyond logical operations, enabling future validator compositions. Assisted-by: OpenCode (GLM 4.5)
1 parent 91ceaaf commit e84d15f

7 files changed

Lines changed: 14 additions & 14 deletions

File tree

src/Validators/AllOf.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
use Respect\Validation\Message\Template;
2020
use Respect\Validation\Result;
2121
use Respect\Validation\Validator;
22-
use Respect\Validation\Validators\Core\Composite;
22+
use Respect\Validation\Validators\Core\LogicalComposite;
2323
use Respect\Validation\Validators\Core\ShortCircuitable;
2424

2525
use function array_filter;
@@ -38,7 +38,7 @@
3838
'{{subject}} must pass all the rules',
3939
self::TEMPLATE_ALL,
4040
)]
41-
final class AllOf extends Composite implements ShortCircuitable
41+
final class AllOf extends LogicalComposite implements ShortCircuitable
4242
{
4343
use CanEvaluateShortCircuit;
4444

src/Validators/AnyOf.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
use Respect\Validation\Message\Template;
2020
use Respect\Validation\Result;
2121
use Respect\Validation\Validator;
22-
use Respect\Validation\Validators\Core\Composite;
22+
use Respect\Validation\Validators\Core\LogicalComposite;
2323
use Respect\Validation\Validators\Core\ShortCircuitable;
2424

2525
use function array_map;
@@ -30,7 +30,7 @@
3030
'{{subject}} must pass at least one of the rules',
3131
'{{subject}} must pass at least one of the rules',
3232
)]
33-
final class AnyOf extends Composite implements ShortCircuitable
33+
final class AnyOf extends LogicalComposite implements ShortCircuitable
3434
{
3535
use CanEvaluateShortCircuit;
3636

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
use function array_merge;
1717

18-
abstract class Composite implements Validator
18+
abstract class LogicalComposite implements Validator
1919
{
2020
/** @var non-empty-array<Validator> */
2121
protected readonly array $validators;

src/Validators/NoneOf.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
use Respect\Validation\Helpers\CanEvaluateShortCircuit;
1919
use Respect\Validation\Message\Template;
2020
use Respect\Validation\Result;
21-
use Respect\Validation\Validators\Core\Composite;
21+
use Respect\Validation\Validators\Core\LogicalComposite;
2222
use Respect\Validation\Validators\Core\ShortCircuitable;
2323

2424
use function count;
@@ -34,7 +34,7 @@
3434
'{{subject}} must pass all the rules',
3535
self::TEMPLATE_ALL,
3636
)]
37-
final class NoneOf extends Composite implements ShortCircuitable
37+
final class NoneOf extends LogicalComposite implements ShortCircuitable
3838
{
3939
use CanEvaluateShortCircuit;
4040

src/Validators/OneOf.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
use Respect\Validation\Message\Template;
2121
use Respect\Validation\Result;
2222
use Respect\Validation\Validator;
23-
use Respect\Validation\Validators\Core\Composite;
23+
use Respect\Validation\Validators\Core\LogicalComposite;
2424
use Respect\Validation\Validators\Core\ShortCircuitable;
2525

2626
use function array_filter;
@@ -40,7 +40,7 @@
4040
'{{subject}} must pass only one of the rules',
4141
self::TEMPLATE_MORE_THAN_ONE,
4242
)]
43-
final class OneOf extends Composite implements ShortCircuitable
43+
final class OneOf extends LogicalComposite implements ShortCircuitable
4444
{
4545
use CanEvaluateShortCircuit;
4646

tests/src/Validators/Core/ConcreteComposite.php renamed to tests/src/Validators/Core/ConcreteLogicalComposite.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
namespace Respect\Validation\Test\Validators\Core;
1313

1414
use Respect\Validation\Result;
15-
use Respect\Validation\Validators\Core\Composite;
15+
use Respect\Validation\Validators\Core\LogicalComposite;
1616

17-
final class ConcreteComposite extends Composite
17+
final class ConcreteLogicalComposite extends LogicalComposite
1818
{
1919
public function evaluate(mixed $input): Result
2020
{

tests/unit/Validators/Core/CompositeTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@
1515
use PHPUnit\Framework\Attributes\Group;
1616
use PHPUnit\Framework\Attributes\Test;
1717
use Respect\Validation\Test\TestCase;
18-
use Respect\Validation\Test\Validators\Core\ConcreteComposite;
18+
use Respect\Validation\Test\Validators\Core\ConcreteLogicalComposite;
1919
use Respect\Validation\Test\Validators\Stub;
2020

2121
#[Group('core')]
22-
#[CoversClass(Composite::class)]
22+
#[CoversClass(LogicalComposite::class)]
2323
final class CompositeTest extends TestCase
2424
{
2525
#[Test]
2626
public function itShouldReturnItsChildren(): void
2727
{
2828
$expected = [Stub::daze(), Stub::daze(), Stub::daze()];
29-
$sut = new ConcreteComposite(...$expected);
29+
$sut = new ConcreteLogicalComposite(...$expected);
3030
$actual = $sut->getValidators();
3131

3232
self::assertCount(3, $actual);

0 commit comments

Comments
 (0)