diff --git a/config/autoload/url-shortener.global.php b/config/autoload/url-shortener.global.php index dd268cb7..5b941ee4 100644 --- a/config/autoload/url-shortener.global.php +++ b/config/autoload/url-shortener.global.php @@ -13,6 +13,10 @@ return [ ], 'shortcode_chars' => env('SHORTCODE_CHARS', UrlShortener::DEFAULT_CHARS), 'validate_url' => true, + 'not_found_short_url' => [ + 'enable_redirection' => false, + 'redirect_to' => null, + ], ], ]; diff --git a/module/Core/config/dependencies.config.php b/module/Core/config/dependencies.config.php index 31fd1297..665d0894 100644 --- a/module/Core/config/dependencies.config.php +++ b/module/Core/config/dependencies.config.php @@ -16,8 +16,9 @@ return [ 'dependencies' => [ 'factories' => [ - Options\AppOptions::class => Options\AppOptionsFactory::class, - Options\DeleteShortUrlsOptions::class => Options\DeleteShortUrlsOptionsFactory::class, + Options\AppOptions::class => ConfigAbstractFactory::class, + Options\DeleteShortUrlsOptions::class => ConfigAbstractFactory::class, + Options\NotFoundShortUrlOptions::class => ConfigAbstractFactory::class, NotFoundHandler::class => ConfigAbstractFactory::class, // Services @@ -40,6 +41,10 @@ return [ ConfigAbstractFactory::class => [ NotFoundHandler::class => [TemplateRendererInterface::class], + Options\AppOptions::class => ['config.app_options'], + Options\DeleteShortUrlsOptions::class => ['config.delete_short_urls'], + Options\NotFoundShortUrlOptions::class => ['config.url_shortener.not_found_short_url'], + // Services Service\UrlShortener::class => [ 'httpClient', diff --git a/module/Core/src/Options/AppOptionsFactory.php b/module/Core/src/Options/AppOptionsFactory.php deleted file mode 100644 index 0df25a2a..00000000 --- a/module/Core/src/Options/AppOptionsFactory.php +++ /dev/null @@ -1,31 +0,0 @@ -has('config') ? $container->get('config') : []; - return new AppOptions($config['app_options'] ?? []); - } -} diff --git a/module/Core/src/Options/DeleteShortUrlsOptionsFactory.php b/module/Core/src/Options/DeleteShortUrlsOptionsFactory.php deleted file mode 100644 index fab7cfee..00000000 --- a/module/Core/src/Options/DeleteShortUrlsOptionsFactory.php +++ /dev/null @@ -1,31 +0,0 @@ -has('config') ? $container->get('config') : []; - return new DeleteShortUrlsOptions($config['delete_short_urls'] ?? []); - } -} diff --git a/module/Core/src/Options/NotFoundShortUrlOptions.php b/module/Core/src/Options/NotFoundShortUrlOptions.php new file mode 100644 index 00000000..8e461240 --- /dev/null +++ b/module/Core/src/Options/NotFoundShortUrlOptions.php @@ -0,0 +1,40 @@ +enableRedirection; + } + + protected function enableRedirection(bool $enableRedirection = true): self + { + $this->enableRedirection = $enableRedirection; + return $this; + } + + public function getRedirectTo(): ?string + { + return $this->redirectTo; + } + + protected function setRedirectTo(string $redirectTo): self + { + $this->redirectTo = $redirectTo; + return $this; + } +} diff --git a/module/Core/test/Options/AppOptionsFactoryTest.php b/module/Core/test/Options/AppOptionsFactoryTest.php deleted file mode 100644 index b9bbe498..00000000 --- a/module/Core/test/Options/AppOptionsFactoryTest.php +++ /dev/null @@ -1,31 +0,0 @@ -factory = new AppOptionsFactory(); - } - - /** - * @test - */ - public function serviceIsCreated() - { - $instance = $this->factory->__invoke(new ServiceManager([]), ''); - $this->assertInstanceOf(AppOptions::class, $instance); - } -}