dependencies.config.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. declare(strict_types=1);
  3. namespace Shlinkio\Shlink\Core;
  4. use Laminas\ServiceManager\AbstractFactory\ConfigAbstractFactory;
  5. use Laminas\ServiceManager\Factory\InvokableFactory;
  6. use Psr\EventDispatcher\EventDispatcherInterface;
  7. use Shlinkio\Shlink\Core\ErrorHandler;
  8. use Shlinkio\Shlink\Core\Options\NotFoundRedirectOptions;
  9. use Shlinkio\Shlink\Importer\ImportedLinksProcessorInterface;
  10. return [
  11. 'dependencies' => [
  12. 'factories' => [
  13. ErrorHandler\NotFoundTypeResolverMiddleware::class => ConfigAbstractFactory::class,
  14. ErrorHandler\NotFoundTrackerMiddleware::class => ConfigAbstractFactory::class,
  15. ErrorHandler\NotFoundRedirectHandler::class => ConfigAbstractFactory::class,
  16. ErrorHandler\NotFoundTemplateHandler::class => InvokableFactory::class,
  17. Options\AppOptions::class => ConfigAbstractFactory::class,
  18. Options\DeleteShortUrlsOptions::class => ConfigAbstractFactory::class,
  19. Options\NotFoundRedirectOptions::class => ConfigAbstractFactory::class,
  20. Options\UrlShortenerOptions::class => ConfigAbstractFactory::class,
  21. Service\UrlShortener::class => ConfigAbstractFactory::class,
  22. Service\ShortUrlService::class => ConfigAbstractFactory::class,
  23. Service\ShortUrl\DeleteShortUrlService::class => ConfigAbstractFactory::class,
  24. Service\ShortUrl\ShortUrlResolver::class => ConfigAbstractFactory::class,
  25. Service\ShortUrl\ShortCodeHelper::class => ConfigAbstractFactory::class,
  26. Tag\TagService::class => ConfigAbstractFactory::class,
  27. Domain\DomainService::class => ConfigAbstractFactory::class,
  28. Visit\VisitsTracker::class => ConfigAbstractFactory::class,
  29. Visit\VisitLocator::class => ConfigAbstractFactory::class,
  30. Visit\VisitsStatsHelper::class => ConfigAbstractFactory::class,
  31. Visit\Transformer\OrphanVisitDataTransformer::class => InvokableFactory::class,
  32. Util\UrlValidator::class => ConfigAbstractFactory::class,
  33. Util\DoctrineBatchHelper::class => ConfigAbstractFactory::class,
  34. Util\RedirectResponseHelper::class => ConfigAbstractFactory::class,
  35. Action\RedirectAction::class => ConfigAbstractFactory::class,
  36. Action\PixelAction::class => ConfigAbstractFactory::class,
  37. Action\QrCodeAction::class => ConfigAbstractFactory::class,
  38. ShortUrl\Resolver\PersistenceShortUrlRelationResolver::class => ConfigAbstractFactory::class,
  39. ShortUrl\Helper\ShortUrlStringifier::class => ConfigAbstractFactory::class,
  40. ShortUrl\Helper\ShortUrlTitleResolutionHelper::class => ConfigAbstractFactory::class,
  41. ShortUrl\Transformer\ShortUrlDataTransformer::class => ConfigAbstractFactory::class,
  42. Mercure\MercureUpdatesGenerator::class => ConfigAbstractFactory::class,
  43. Importer\ImportedLinksProcessor::class => ConfigAbstractFactory::class,
  44. ],
  45. 'aliases' => [
  46. ImportedLinksProcessorInterface::class => Importer\ImportedLinksProcessor::class,
  47. ],
  48. ],
  49. ConfigAbstractFactory::class => [
  50. ErrorHandler\NotFoundTypeResolverMiddleware::class => ['config.router.base_path'],
  51. ErrorHandler\NotFoundTrackerMiddleware::class => [Visit\VisitsTracker::class],
  52. ErrorHandler\NotFoundRedirectHandler::class => [
  53. NotFoundRedirectOptions::class,
  54. Util\RedirectResponseHelper::class,
  55. ],
  56. Options\AppOptions::class => ['config.app_options'],
  57. Options\DeleteShortUrlsOptions::class => ['config.delete_short_urls'],
  58. Options\NotFoundRedirectOptions::class => ['config.not_found_redirects'],
  59. Options\UrlShortenerOptions::class => ['config.url_shortener'],
  60. Service\UrlShortener::class => [
  61. ShortUrl\Helper\ShortUrlTitleResolutionHelper::class,
  62. 'em',
  63. ShortUrl\Resolver\PersistenceShortUrlRelationResolver::class,
  64. Service\ShortUrl\ShortCodeHelper::class,
  65. ],
  66. Visit\VisitsTracker::class => [
  67. 'em',
  68. EventDispatcherInterface::class,
  69. Options\UrlShortenerOptions::class,
  70. ],
  71. Service\ShortUrlService::class => [
  72. 'em',
  73. Service\ShortUrl\ShortUrlResolver::class,
  74. ShortUrl\Helper\ShortUrlTitleResolutionHelper::class,
  75. ShortUrl\Resolver\PersistenceShortUrlRelationResolver::class,
  76. ],
  77. Visit\VisitLocator::class => ['em'],
  78. Visit\VisitsStatsHelper::class => ['em'],
  79. Tag\TagService::class => ['em'],
  80. Service\ShortUrl\DeleteShortUrlService::class => [
  81. 'em',
  82. Options\DeleteShortUrlsOptions::class,
  83. Service\ShortUrl\ShortUrlResolver::class,
  84. ],
  85. Service\ShortUrl\ShortUrlResolver::class => ['em'],
  86. Service\ShortUrl\ShortCodeHelper::class => ['em'],
  87. Domain\DomainService::class => ['em', 'config.url_shortener.domain.hostname'],
  88. Util\UrlValidator::class => ['httpClient', Options\UrlShortenerOptions::class],
  89. Util\DoctrineBatchHelper::class => ['em'],
  90. Util\RedirectResponseHelper::class => [Options\UrlShortenerOptions::class],
  91. Action\RedirectAction::class => [
  92. Service\ShortUrl\ShortUrlResolver::class,
  93. Visit\VisitsTracker::class,
  94. Options\AppOptions::class,
  95. Util\RedirectResponseHelper::class,
  96. 'Logger_Shlink',
  97. ],
  98. Action\PixelAction::class => [
  99. Service\ShortUrl\ShortUrlResolver::class,
  100. Visit\VisitsTracker::class,
  101. Options\AppOptions::class,
  102. 'Logger_Shlink',
  103. ],
  104. Action\QrCodeAction::class => [
  105. Service\ShortUrl\ShortUrlResolver::class,
  106. ShortUrl\Helper\ShortUrlStringifier::class,
  107. 'Logger_Shlink',
  108. ],
  109. ShortUrl\Resolver\PersistenceShortUrlRelationResolver::class => ['em'],
  110. ShortUrl\Helper\ShortUrlStringifier::class => ['config.url_shortener.domain', 'config.router.base_path'],
  111. ShortUrl\Helper\ShortUrlTitleResolutionHelper::class => [Util\UrlValidator::class],
  112. ShortUrl\Transformer\ShortUrlDataTransformer::class => [ShortUrl\Helper\ShortUrlStringifier::class],
  113. Mercure\MercureUpdatesGenerator::class => [ShortUrl\Transformer\ShortUrlDataTransformer::class],
  114. Importer\ImportedLinksProcessor::class => [
  115. 'em',
  116. ShortUrl\Resolver\PersistenceShortUrlRelationResolver::class,
  117. Service\ShortUrl\ShortCodeHelper::class,
  118. Util\DoctrineBatchHelper::class,
  119. ],
  120. ],
  121. ];