[ 'factories' => [ Options\AppOptions::class => Options\AppOptionsFactory::class, NotFoundDelegate::class => ConfigAbstractFactory::class, // Services Service\UrlShortener::class => ConfigAbstractFactory::class, Service\VisitsTracker::class => ConfigAbstractFactory::class, Service\ShortUrlService::class => ConfigAbstractFactory::class, Service\VisitService::class => ConfigAbstractFactory::class, Service\Tag\TagService::class => ConfigAbstractFactory::class, // Middleware Action\RedirectAction::class => ConfigAbstractFactory::class, Action\QrCodeAction::class => ConfigAbstractFactory::class, Action\PreviewAction::class => ConfigAbstractFactory::class, Middleware\QrCodeCacheMiddleware::class => ConfigAbstractFactory::class, ], 'aliases' => [ 'Zend\Expressive\Delegate\DefaultDelegate' => NotFoundDelegate::class, ], ], ConfigAbstractFactory::class => [ NotFoundDelegate::class => [TemplateRendererInterface::class], // Services Service\UrlShortener::class => [ 'httpClient', 'em', Cache::class, 'config.url_shortener.validate_url', 'config.url_shortener.shortcode_chars', ], Service\VisitsTracker::class => ['em'], Service\ShortUrlService::class => ['em'], Service\VisitService::class => ['em'], Service\Tag\TagService::class => ['em'], // Middleware Action\RedirectAction::class => [ Service\UrlShortener::class, Service\VisitsTracker::class, Options\AppOptions::class, ], Action\QrCodeAction::class => [RouterInterface::class, Service\UrlShortener::class, 'Logger_Shlink'], Action\PreviewAction::class => [PreviewGenerator::class, Service\UrlShortener::class], Middleware\QrCodeCacheMiddleware::class => [Cache::class], ], ];