From 1701f70e0eecdf625098f8b26a39771f8f4763eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Tue, 21 May 2024 21:45:45 +0200 Subject: [PATCH] mark TranslatorFactory as final and remove FactoryInterface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Thomas Müller --- src/Translator/TranslatorFactory.php | 28 ++++++++--------------- test/Translator/TranslatorFactoryTest.php | 16 ++++++------- 2 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/Translator/TranslatorFactory.php b/src/Translator/TranslatorFactory.php index 0a456c37..35086ab7 100644 --- a/src/Translator/TranslatorFactory.php +++ b/src/Translator/TranslatorFactory.php @@ -7,7 +7,6 @@ use Laminas\I18n\Translator\LoaderPluginManager; use Laminas\I18n\Translator\Translator as I18nTranslator; use Laminas\I18n\Translator\TranslatorInterface; -use Laminas\ServiceManager\Factory\FactoryInterface; use Laminas\ServiceManager\ServiceManager; use Psr\Container\ContainerInterface; use Traversable; @@ -21,13 +20,9 @@ * Overrides the translator factory from the i18n component in order to * replace it with the bridge class from this namespace. */ -class TranslatorFactory implements FactoryInterface +final class TranslatorFactory { - /** - * @param string $requestedName - * @return Translator - */ - public function __invoke(ContainerInterface $container, $requestedName, ?array $options = null) + public function __invoke(ContainerInterface $container): Translator { // Assume that if a user has registered a service for the // TranslatorInterface, it must be valid @@ -49,14 +44,13 @@ public function __invoke(ContainerInterface $container, $requestedName, ?array $ * - returns an Translator decorating a DummyTranslator instance if * ext/intl is not loaded. * - returns an Translator decorating an empty I18nTranslator instance. - * - * @return Translator */ - private function marshalTranslator(ContainerInterface $container) + private function marshalTranslator(ContainerInterface $container): Translator { // Load a translator from configuration, if possible $translator = $this->marshalTranslatorFromConfig($container); - if ($translator) { + + if ($translator instanceof Translator) { return $translator; } @@ -78,19 +72,17 @@ private function marshalTranslator(ContainerInterface $container) * configuration is available, and is a non-empty array or a Traversable * instance. * - null in all other cases, including absence of a configuration service. - * - * @return void|Translator */ - private function marshalTranslatorFromConfig(ContainerInterface $container) + private function marshalTranslatorFromConfig(ContainerInterface $container): ?Translator { if (! $container->has('config')) { - return; + return null; } $config = $container->get('config'); if (! is_array($config) || ! array_key_exists('translator', $config)) { - return; + return null; } // 'translator' => false @@ -100,12 +92,12 @@ private function marshalTranslatorFromConfig(ContainerInterface $container) // Empty translator configuration if (is_array($config['translator']) && empty($config['translator'])) { - return; + return null; } // Unusable translator configuration if (! is_array($config['translator']) && ! $config['translator'] instanceof Traversable) { - return; + return null; } // Create translator from configuration diff --git a/test/Translator/TranslatorFactoryTest.php b/test/Translator/TranslatorFactoryTest.php index 68673b33..426b57d7 100644 --- a/test/Translator/TranslatorFactoryTest.php +++ b/test/Translator/TranslatorFactoryTest.php @@ -44,7 +44,7 @@ public function testFactoryReturnsTranslatorDecoratingTranslatorInterfaceService self::assertInstanceOf(ContainerInterface::class, $container); $factory = new TranslatorFactory(); - $test = $factory($container, TranslatorInterface::class); + $test = $factory($container); $this->assertInstanceOf(Translator::class, $test); @@ -84,7 +84,7 @@ public function testFactoryReturnsTranslatorDecoratingDefaultTranslatorWhenNoCon self::assertInstanceOf(ContainerInterface::class, $container); $factory = new TranslatorFactory(); - $test = $factory($container, TranslatorInterface::class); + $test = $factory($container); $this->assertInstanceOf(Translator::class, $test); @@ -119,7 +119,7 @@ public function testFactoryReturnsMvcDecoratorDecoratingDefaultTranslatorWhenNoT self::assertInstanceOf(ContainerInterface::class, $container); $factory = new TranslatorFactory(); - $test = $factory($container, TranslatorInterface::class); + $test = $factory($container); $this->assertInstanceOf(Translator::class, $test); @@ -149,7 +149,7 @@ public function testFactoryReturnsMvcDecoratorDecoratingDummyTranslatorWhenTrans self::assertInstanceOf(ContainerInterface::class, $container); $factory = new TranslatorFactory(); - $test = $factory($container, TranslatorInterface::class); + $test = $factory($container); $this->assertInstanceOf(Translator::class, $test); @@ -184,7 +184,7 @@ public function testFactoryReturnsMvcDecoratorDecoratingDefaultTranslatorWhenEmp self::assertInstanceOf(ContainerInterface::class, $container); $factory = new TranslatorFactory(); - $test = $factory($container, TranslatorInterface::class); + $test = $factory($container); $this->assertInstanceOf(Translator::class, $test); @@ -240,7 +240,7 @@ public function testFactoryReturnsDecoratorDecoratingDefaultTranslatorWithInvali self::assertInstanceOf(ContainerInterface::class, $container); $factory = new TranslatorFactory(); - $test = $factory($container, TranslatorInterface::class); + $test = $factory($container); $this->assertInstanceOf(Translator::class, $test); @@ -297,7 +297,7 @@ public function testFactoryReturnsConfiguredTranslatorWhenValidConfigIsPresent($ self::assertInstanceOf(ContainerInterface::class, $container); $factory = new TranslatorFactory(); - $test = $factory($container, TranslatorInterface::class); + $test = $factory($container); $this->assertInstanceOf(Translator::class, $test); @@ -350,7 +350,7 @@ public function testFactoryReturnsConfiguredTranslatorInjectedWithTranslatorPlug self::assertInstanceOf(ContainerInterface::class, $container); $factory = new TranslatorFactory(); - $test = $factory($container, TranslatorInterface::class); + $test = $factory($container); $this->assertInstanceOf(Translator::class, $test);