From 69eb07d3be9e75e44a4da9c0509dc450dc02a5af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Demircio=C4=9Flu?= <31544037+atakde@users.noreply.github.com> Date: Thu, 30 Jun 2022 00:41:24 +0300 Subject: [PATCH 1/6] Builder :: added missing return types --- Creational/Builder/Builder.php | 8 ++++---- Creational/Builder/CarBuilder.php | 8 ++++---- Creational/Builder/TruckBuilder.php | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Creational/Builder/Builder.php b/Creational/Builder/Builder.php index 6bda440..eadee30 100644 --- a/Creational/Builder/Builder.php +++ b/Creational/Builder/Builder.php @@ -8,13 +8,13 @@ use DesignPatterns\Creational\Builder\Parts\Vehicle; interface Builder { - public function createVehicle(); + public function createVehicle(): void; - public function addWheel(); + public function addWheel(): void; - public function addEngine(); + public function addEngine(): void; - public function addDoors(); + public function addDoors(): void; public function getVehicle(): Vehicle; } diff --git a/Creational/Builder/CarBuilder.php b/Creational/Builder/CarBuilder.php index b418004..9335a13 100644 --- a/Creational/Builder/CarBuilder.php +++ b/Creational/Builder/CarBuilder.php @@ -14,19 +14,19 @@ class CarBuilder implements Builder { private Car $car; - public function addDoors() + public function addDoors(): void { $this->car->setPart('rightDoor', new Door()); $this->car->setPart('leftDoor', new Door()); $this->car->setPart('trunkLid', new Door()); } - public function addEngine() + public function addEngine(): void { $this->car->setPart('engine', new Engine()); } - public function addWheel() + public function addWheel(): void { $this->car->setPart('wheelLF', new Wheel()); $this->car->setPart('wheelRF', new Wheel()); @@ -34,7 +34,7 @@ class CarBuilder implements Builder $this->car->setPart('wheelRR', new Wheel()); } - public function createVehicle() + public function createVehicle(): void { $this->car = new Car(); } diff --git a/Creational/Builder/TruckBuilder.php b/Creational/Builder/TruckBuilder.php index 2be7f4e..b9d57df 100644 --- a/Creational/Builder/TruckBuilder.php +++ b/Creational/Builder/TruckBuilder.php @@ -14,18 +14,18 @@ class TruckBuilder implements Builder { private Truck $truck; - public function addDoors() + public function addDoors(): void { $this->truck->setPart('rightDoor', new Door()); $this->truck->setPart('leftDoor', new Door()); } - public function addEngine() + public function addEngine(): void { $this->truck->setPart('truckEngine', new Engine()); } - public function addWheel() + public function addWheel(): void { $this->truck->setPart('wheel1', new Wheel()); $this->truck->setPart('wheel2', new Wheel()); @@ -35,7 +35,7 @@ class TruckBuilder implements Builder $this->truck->setPart('wheel6', new Wheel()); } - public function createVehicle() + public function createVehicle(): void { $this->truck = new Truck(); } From 33fe6d7ee6ebf3c6f895e420999d038d532786fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Demircio=C4=9Flu?= <31544037+atakde@users.noreply.github.com> Date: Thu, 30 Jun 2022 00:53:41 +0300 Subject: [PATCH 2/6] Removed unused constructor & Datetime --- Creational/Pool/StringReverseWorker.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Creational/Pool/StringReverseWorker.php b/Creational/Pool/StringReverseWorker.php index a2de032..60065de 100644 --- a/Creational/Pool/StringReverseWorker.php +++ b/Creational/Pool/StringReverseWorker.php @@ -4,14 +4,8 @@ declare(strict_types=1); namespace DesignPatterns\Creational\Pool; -use DateTime; - class StringReverseWorker { - public function __construct() - { - } - public function run(string $text): string { return strrev($text); From b2d6414f816f8d5504865fd825d7c2f42c523bb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Demircio=C4=9Flu?= <31544037+atakde@users.noreply.github.com> Date: Thu, 30 Jun 2022 00:54:32 +0300 Subject: [PATCH 3/6] WorkerPool :: added missing return type & strict comparison --- Creational/Pool/WorkerPool.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Creational/Pool/WorkerPool.php b/Creational/Pool/WorkerPool.php index 82426a9..6b4f3d8 100644 --- a/Creational/Pool/WorkerPool.php +++ b/Creational/Pool/WorkerPool.php @@ -20,7 +20,7 @@ class WorkerPool implements Countable public function get(): StringReverseWorker { - if (count($this->freeWorkers) == 0) { + if (count($this->freeWorkers) === 0) { $worker = new StringReverseWorker(); } else { $worker = array_pop($this->freeWorkers); @@ -31,10 +31,9 @@ class WorkerPool implements Countable return $worker; } - public function dispose(StringReverseWorker $worker) + public function dispose(StringReverseWorker $worker): void { $key = spl_object_hash($worker); - if (isset($this->occupiedWorkers[$key])) { unset($this->occupiedWorkers[$key]); $this->freeWorkers[$key] = $worker; From 912d60b437107c1c25221d252a73352ac4e9ba23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Demircio=C4=9Flu?= <31544037+atakde@users.noreply.github.com> Date: Thu, 30 Jun 2022 00:59:46 +0300 Subject: [PATCH 4/6] StaticFactory :: use match instead of if else --- Creational/StaticFactory/StaticFactory.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Creational/StaticFactory/StaticFactory.php b/Creational/StaticFactory/StaticFactory.php index 8ebff07..e63b369 100644 --- a/Creational/StaticFactory/StaticFactory.php +++ b/Creational/StaticFactory/StaticFactory.php @@ -14,12 +14,10 @@ final class StaticFactory { public static function factory(string $type): Formatter { - if ($type == 'number') { - return new FormatNumber(); - } elseif ($type == 'string') { - return new FormatString(); - } - - throw new InvalidArgumentException('Unknown format given'); + return match($type) { + 'number' => new FormatNumber(), + 'string' => new FormatString(), + default => throw new InvalidArgumentException('Unknown format given'), + }; } } From 54f809298b8dfa428df3bca47bec4a281519f6dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Demircio=C4=9Flu?= <31544037+atakde@users.noreply.github.com> Date: Thu, 30 Jun 2022 01:05:54 +0300 Subject: [PATCH 5/6] WinJsonWriter :: missing formatted option added --- Creational/AbstractFactory/WinJsonWriter.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Creational/AbstractFactory/WinJsonWriter.php b/Creational/AbstractFactory/WinJsonWriter.php index 7671521..4c553a8 100644 --- a/Creational/AbstractFactory/WinJsonWriter.php +++ b/Creational/AbstractFactory/WinJsonWriter.php @@ -6,8 +6,12 @@ class WinJsonWriter implements JsonWriter { public function write(array $data, bool $formatted): string { + $options = 0; + if ($formatted) { + $options = JSON_PRETTY_PRINT; + } - return json_encode($data, JSON_PRETTY_PRINT); + return json_encode($data, $options); } } From 719593cedcdfd355656dcfbafed96d99154dfe6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20Demircio=C4=9Flu?= <31544037+atakde@users.noreply.github.com> Date: Tue, 19 Jul 2022 09:01:15 +0300 Subject: [PATCH 6/6] StaticFactory :: lint --- Creational/StaticFactory/StaticFactory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Creational/StaticFactory/StaticFactory.php b/Creational/StaticFactory/StaticFactory.php index e63b369..de91a85 100644 --- a/Creational/StaticFactory/StaticFactory.php +++ b/Creational/StaticFactory/StaticFactory.php @@ -14,7 +14,7 @@ final class StaticFactory { public static function factory(string $type): Formatter { - return match($type) { + return match ($type) { 'number' => new FormatNumber(), 'string' => new FormatString(), default => throw new InvalidArgumentException('Unknown format given'),