From e09d7f0f0a31340341b6542e223fe57e08a5c96f Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Sun, 9 Jul 2023 13:29:36 +0200 Subject: [PATCH 1/2] Refactor FactoryResolver Because in case of a missing Factory, a default anon-abstract factory will be created --- .../Domain/AllAppModules/AppModuleCreator.php | 13 ++++--------- .../ClassResolver/AbstractClassResolver.php | 15 +++++---------- .../ClassResolver/Factory/FactoryResolver.php | 6 +----- 3 files changed, 10 insertions(+), 24 deletions(-) diff --git a/src/Console/Domain/AllAppModules/AppModuleCreator.php b/src/Console/Domain/AllAppModules/AppModuleCreator.php index 1225225f..f7716397 100644 --- a/src/Console/Domain/AllAppModules/AppModuleCreator.php +++ b/src/Console/Domain/AllAppModules/AppModuleCreator.php @@ -8,7 +8,6 @@ use Gacela\Framework\ClassResolver\Config\ConfigResolver; use Gacela\Framework\ClassResolver\DependencyProvider\DependencyProviderNotFoundException; use Gacela\Framework\ClassResolver\DependencyProvider\DependencyProviderResolver; -use Gacela\Framework\ClassResolver\Factory\FactoryNotFoundException; use Gacela\Framework\ClassResolver\Factory\FactoryResolver; use ReflectionClass; @@ -65,17 +64,13 @@ private function moduleName(string $facadeClass): string */ private function findFactory(string $facadeClass): ?string { - try { - $resolver = $this->factoryResolver->resolve($facadeClass); - - if ((new ReflectionClass($resolver))->isAnonymous()) { - throw new FactoryNotFoundException($facadeClass); - } + $resolver = $this->factoryResolver->resolve($facadeClass); - return $resolver::class; - } catch (FactoryNotFoundException $e) { + if ((new ReflectionClass($resolver))->isAnonymous()) { return null; } + + return $resolver::class; } /** diff --git a/src/Framework/ClassResolver/AbstractClassResolver.php b/src/Framework/ClassResolver/AbstractClassResolver.php index 56cde920..8d0628ff 100644 --- a/src/Framework/ClassResolver/AbstractClassResolver.php +++ b/src/Framework/ClassResolver/AbstractClassResolver.php @@ -163,15 +163,10 @@ private function getGacelaConfigFile(): GacelaConfigFileInterface private function createDefaultGacelaClass(): ?object { - switch ($this->getResolvableType()) { - case FactoryResolver::TYPE: - return new class() extends AbstractFactory { - }; - case ConfigResolver::TYPE: - return new class() extends AbstractConfig { - }; - default: - return null; - } + return match ($this->getResolvableType()) { + FactoryResolver::TYPE => new class() extends AbstractFactory {}, + ConfigResolver::TYPE => new class() extends AbstractConfig {}, + default => null, + }; } } diff --git a/src/Framework/ClassResolver/Factory/FactoryResolver.php b/src/Framework/ClassResolver/Factory/FactoryResolver.php index 708d244a..147a520c 100644 --- a/src/Framework/ClassResolver/Factory/FactoryResolver.php +++ b/src/Framework/ClassResolver/Factory/FactoryResolver.php @@ -18,13 +18,9 @@ final class FactoryResolver extends AbstractClassResolver */ public function resolve(object|string $caller): AbstractFactory { - /** @var ?AbstractFactory $resolved */ + /** @var AbstractFactory $resolved */ $resolved = $this->doResolve($caller); - if ($resolved === null) { - throw new FactoryNotFoundException($caller); - } - return $resolved; } From fe813fabb6bb8d96c4fbd40fcebaf6b014d4fa03 Mon Sep 17 00:00:00 2001 From: Chemaclass Date: Sun, 9 Jul 2023 13:39:55 +0200 Subject: [PATCH 2/2] Delete unused FactoryNotFoundException --- .../Factory/FactoryNotFoundException.php | 21 ------------------- .../ClassResolver/Factory/FactoryResolver.php | 2 -- 2 files changed, 23 deletions(-) delete mode 100644 src/Framework/ClassResolver/Factory/FactoryNotFoundException.php diff --git a/src/Framework/ClassResolver/Factory/FactoryNotFoundException.php b/src/Framework/ClassResolver/Factory/FactoryNotFoundException.php deleted file mode 100644 index 8c24be12..00000000 --- a/src/Framework/ClassResolver/Factory/FactoryNotFoundException.php +++ /dev/null @@ -1,21 +0,0 @@ -buildMessage($caller, 'Factory')); - } -} diff --git a/src/Framework/ClassResolver/Factory/FactoryResolver.php b/src/Framework/ClassResolver/Factory/FactoryResolver.php index 147a520c..85899d8b 100644 --- a/src/Framework/ClassResolver/Factory/FactoryResolver.php +++ b/src/Framework/ClassResolver/Factory/FactoryResolver.php @@ -13,8 +13,6 @@ final class FactoryResolver extends AbstractClassResolver /** * @param object|class-string $caller - * - * @throws FactoryNotFoundException */ public function resolve(object|string $caller): AbstractFactory {