From 3a8af1c42fda56d4a85690d495f3f120f49b7131 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Thu, 18 Apr 2024 11:23:38 +0200 Subject: [PATCH 1/3] fix: classes renaming to correspond to UML diagram --- .../State/{OrderContext.php => ContextOrder.php} | 10 +++++----- Behavioral/State/{StateCreated.php => CreateOrder.php} | 6 +++--- Behavioral/State/{StateDone.php => OrderDone.php} | 4 ++-- .../State/{StateShipped.php => ShippingOrder.php} | 6 +++--- Behavioral/State/{State.php => StateOrder.php} | 4 ++-- Behavioral/State/Tests/StateTest.php | 10 +++++----- 6 files changed, 20 insertions(+), 20 deletions(-) rename Behavioral/State/{OrderContext.php => ContextOrder.php} (65%) rename Behavioral/State/{StateCreated.php => CreateOrder.php} (53%) rename Behavioral/State/{StateDone.php => OrderDone.php} (68%) rename Behavioral/State/{StateShipped.php => ShippingOrder.php} (54%) rename Behavioral/State/{State.php => StateOrder.php} (60%) diff --git a/Behavioral/State/OrderContext.php b/Behavioral/State/ContextOrder.php similarity index 65% rename from Behavioral/State/OrderContext.php rename to Behavioral/State/ContextOrder.php index c18961c..76e5631 100644 --- a/Behavioral/State/OrderContext.php +++ b/Behavioral/State/ContextOrder.php @@ -4,19 +4,19 @@ declare(strict_types=1); namespace DesignPatterns\Behavioral\State; -class OrderContext +class ContextOrder { - private State $state; + private StateOrder $state; - public static function create(): OrderContext + public static function create(): ContextOrder { $order = new self(); - $order->state = new StateCreated(); + $order->state = new CreateOrder(); return $order; } - public function setState(State $state) + public function setState(StateOrder $state) { $this->state = $state; } diff --git a/Behavioral/State/StateCreated.php b/Behavioral/State/CreateOrder.php similarity index 53% rename from Behavioral/State/StateCreated.php rename to Behavioral/State/CreateOrder.php index 22c184a..a72711c 100644 --- a/Behavioral/State/StateCreated.php +++ b/Behavioral/State/CreateOrder.php @@ -4,11 +4,11 @@ declare(strict_types=1); namespace DesignPatterns\Behavioral\State; -class StateCreated implements State +class CreateOrder implements StateOrder { - public function proceedToNext(OrderContext $context) + public function proceedToNext(ContextOrder $context) { - $context->setState(new StateShipped()); + $context->setState(new ShippingOrder()); } public function toString(): string diff --git a/Behavioral/State/StateDone.php b/Behavioral/State/OrderDone.php similarity index 68% rename from Behavioral/State/StateDone.php rename to Behavioral/State/OrderDone.php index 6ee3fde..e7c596f 100644 --- a/Behavioral/State/StateDone.php +++ b/Behavioral/State/OrderDone.php @@ -4,9 +4,9 @@ declare(strict_types=1); namespace DesignPatterns\Behavioral\State; -class StateDone implements State +class OrderDone implements StateOrder { - public function proceedToNext(OrderContext $context) + public function proceedToNext(ContextOrder $context) { // there is nothing more to do } diff --git a/Behavioral/State/StateShipped.php b/Behavioral/State/ShippingOrder.php similarity index 54% rename from Behavioral/State/StateShipped.php rename to Behavioral/State/ShippingOrder.php index d883413..6ad0256 100644 --- a/Behavioral/State/StateShipped.php +++ b/Behavioral/State/ShippingOrder.php @@ -4,11 +4,11 @@ declare(strict_types=1); namespace DesignPatterns\Behavioral\State; -class StateShipped implements State +class ShippingOrder implements StateOrder { - public function proceedToNext(OrderContext $context) + public function proceedToNext(ContextOrder $context) { - $context->setState(new StateDone()); + $context->setState(new OrderDone()); } public function toString(): string diff --git a/Behavioral/State/State.php b/Behavioral/State/StateOrder.php similarity index 60% rename from Behavioral/State/State.php rename to Behavioral/State/StateOrder.php index ed88495..eeb9021 100644 --- a/Behavioral/State/State.php +++ b/Behavioral/State/StateOrder.php @@ -4,9 +4,9 @@ declare(strict_types=1); namespace DesignPatterns\Behavioral\State; -interface State +interface StateOrder { - public function proceedToNext(OrderContext $context); + public function proceedToNext(ContextOrder $context); public function toString(): string; } diff --git a/Behavioral/State/Tests/StateTest.php b/Behavioral/State/Tests/StateTest.php index 721efee..d357e83 100644 --- a/Behavioral/State/Tests/StateTest.php +++ b/Behavioral/State/Tests/StateTest.php @@ -4,21 +4,21 @@ declare(strict_types=1); namespace DesignPatterns\Behavioral\State\Tests; -use DesignPatterns\Behavioral\State\OrderContext; +use DesignPatterns\Behavioral\State\ContextOrder; use PHPUnit\Framework\TestCase; class StateTest extends TestCase { public function testIsCreatedWithStateCreated() { - $orderContext = OrderContext::create(); + $orderContext = ContextOrder::create(); $this->assertSame('created', $orderContext->toString()); } public function testCanProceedToStateShipped() { - $contextOrder = OrderContext::create(); + $contextOrder = ContextOrder::create(); $contextOrder->proceedToNext(); $this->assertSame('shipped', $contextOrder->toString()); @@ -26,7 +26,7 @@ class StateTest extends TestCase public function testCanProceedToStateDone() { - $contextOrder = OrderContext::create(); + $contextOrder = ContextOrder::create(); $contextOrder->proceedToNext(); $contextOrder->proceedToNext(); @@ -35,7 +35,7 @@ class StateTest extends TestCase public function testStateDoneIsTheLastPossibleState() { - $contextOrder = OrderContext::create(); + $contextOrder = ContextOrder::create(); $contextOrder->proceedToNext(); $contextOrder->proceedToNext(); $contextOrder->proceedToNext(); From 0c8f10f6b54f539331e5bc159415b0756ebe07c5 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Thu, 18 Apr 2024 11:25:59 +0200 Subject: [PATCH 2/3] fix: add return types for all methods --- Behavioral/State/ContextOrder.php | 6 +++--- Behavioral/State/CreateOrder.php | 2 +- Behavioral/State/OrderDone.php | 2 +- Behavioral/State/ShippingOrder.php | 2 +- Behavioral/State/StateOrder.php | 2 +- Behavioral/State/Tests/StateTest.php | 8 ++++---- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Behavioral/State/ContextOrder.php b/Behavioral/State/ContextOrder.php index 76e5631..3b64440 100644 --- a/Behavioral/State/ContextOrder.php +++ b/Behavioral/State/ContextOrder.php @@ -16,17 +16,17 @@ class ContextOrder return $order; } - public function setState(StateOrder $state) + public function setState(StateOrder $state): void { $this->state = $state; } - public function proceedToNext() + public function proceedToNext(): void { $this->state->proceedToNext($this); } - public function toString() + public function toString(): string { return $this->state->toString(); } diff --git a/Behavioral/State/CreateOrder.php b/Behavioral/State/CreateOrder.php index a72711c..1385871 100644 --- a/Behavioral/State/CreateOrder.php +++ b/Behavioral/State/CreateOrder.php @@ -6,7 +6,7 @@ namespace DesignPatterns\Behavioral\State; class CreateOrder implements StateOrder { - public function proceedToNext(ContextOrder $context) + public function proceedToNext(ContextOrder $context): void { $context->setState(new ShippingOrder()); } diff --git a/Behavioral/State/OrderDone.php b/Behavioral/State/OrderDone.php index e7c596f..5f1a3f7 100644 --- a/Behavioral/State/OrderDone.php +++ b/Behavioral/State/OrderDone.php @@ -6,7 +6,7 @@ namespace DesignPatterns\Behavioral\State; class OrderDone implements StateOrder { - public function proceedToNext(ContextOrder $context) + public function proceedToNext(ContextOrder $context): void { // there is nothing more to do } diff --git a/Behavioral/State/ShippingOrder.php b/Behavioral/State/ShippingOrder.php index 6ad0256..d82591d 100644 --- a/Behavioral/State/ShippingOrder.php +++ b/Behavioral/State/ShippingOrder.php @@ -6,7 +6,7 @@ namespace DesignPatterns\Behavioral\State; class ShippingOrder implements StateOrder { - public function proceedToNext(ContextOrder $context) + public function proceedToNext(ContextOrder $context): void { $context->setState(new OrderDone()); } diff --git a/Behavioral/State/StateOrder.php b/Behavioral/State/StateOrder.php index eeb9021..1847158 100644 --- a/Behavioral/State/StateOrder.php +++ b/Behavioral/State/StateOrder.php @@ -6,7 +6,7 @@ namespace DesignPatterns\Behavioral\State; interface StateOrder { - public function proceedToNext(ContextOrder $context); + public function proceedToNext(ContextOrder $context): void; public function toString(): string; } diff --git a/Behavioral/State/Tests/StateTest.php b/Behavioral/State/Tests/StateTest.php index d357e83..2b668e2 100644 --- a/Behavioral/State/Tests/StateTest.php +++ b/Behavioral/State/Tests/StateTest.php @@ -9,14 +9,14 @@ use PHPUnit\Framework\TestCase; class StateTest extends TestCase { - public function testIsCreatedWithStateCreated() + public function testIsCreatedWithStateCreated(): void { $orderContext = ContextOrder::create(); $this->assertSame('created', $orderContext->toString()); } - public function testCanProceedToStateShipped() + public function testCanProceedToStateShipped(): void { $contextOrder = ContextOrder::create(); $contextOrder->proceedToNext(); @@ -24,7 +24,7 @@ class StateTest extends TestCase $this->assertSame('shipped', $contextOrder->toString()); } - public function testCanProceedToStateDone() + public function testCanProceedToStateDone(): void { $contextOrder = ContextOrder::create(); $contextOrder->proceedToNext(); @@ -33,7 +33,7 @@ class StateTest extends TestCase $this->assertSame('done', $contextOrder->toString()); } - public function testStateDoneIsTheLastPossibleState() + public function testStateDoneIsTheLastPossibleState(): void { $contextOrder = ContextOrder::create(); $contextOrder->proceedToNext(); From 699ff11308d3413981e6f37f571aff72dcfacbda Mon Sep 17 00:00:00 2001 From: Mathieu Date: Thu, 18 Apr 2024 11:35:16 +0200 Subject: [PATCH 3/3] fix: update README.rst --- Behavioral/State/README.rst | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Behavioral/State/README.rst b/Behavioral/State/README.rst index fb78606..6934b45 100644 --- a/Behavioral/State/README.rst +++ b/Behavioral/State/README.rst @@ -20,33 +20,33 @@ Code You can also find this code on `GitHub`_ -OrderContext.php +ContextOrder.php -.. literalinclude:: OrderContext.php +.. literalinclude:: ContextOrder.php :language: php :linenos: -State.php +StateOrder.php -.. literalinclude:: State.php +.. literalinclude:: StateOrder.php :language: php :linenos: -StateCreated.php +CreateOrder.php -.. literalinclude:: StateCreated.php +.. literalinclude:: CreateOrder.php :language: php :linenos: -StateShipped.php +ShippingOrder.php -.. literalinclude:: StateShipped.php +.. literalinclude:: ShippingOrder.php :language: php :linenos: -StateDone.php +OrderDone.php -.. literalinclude:: StateDone.php +.. literalinclude:: OrderDone.php :language: php :linenos: