dependencies.config.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. declare(strict_types=1);
  3. namespace Shlinkio\Shlink\CLI;
  4. use Doctrine\DBAL\Connection;
  5. use GeoIp2\Database\Reader;
  6. use Laminas\ServiceManager\AbstractFactory\ConfigAbstractFactory;
  7. use Laminas\ServiceManager\Factory\InvokableFactory;
  8. use Shlinkio\Shlink\CLI\Util\GeolocationDbUpdater;
  9. use Shlinkio\Shlink\Common\Doctrine\NoDbNameConnectionFactory;
  10. use Shlinkio\Shlink\Core\Service;
  11. use Shlinkio\Shlink\Installer\Factory\ProcessHelperFactory;
  12. use Shlinkio\Shlink\IpGeolocation\GeoLite2\DbUpdater;
  13. use Shlinkio\Shlink\IpGeolocation\Resolver\IpLocationResolverInterface;
  14. use Shlinkio\Shlink\Rest\Service\ApiKeyService;
  15. use Symfony\Component\Console as SymfonyCli;
  16. use Symfony\Component\Lock\LockFactory;
  17. use Symfony\Component\Process\PhpExecutableFinder;
  18. return [
  19. 'dependencies' => [
  20. 'factories' => [
  21. SymfonyCli\Application::class => Factory\ApplicationFactory::class,
  22. SymfonyCli\Helper\ProcessHelper::class => ProcessHelperFactory::class,
  23. PhpExecutableFinder::class => InvokableFactory::class,
  24. GeolocationDbUpdater::class => ConfigAbstractFactory::class,
  25. Command\ShortUrl\GenerateShortUrlCommand::class => ConfigAbstractFactory::class,
  26. Command\ShortUrl\ResolveUrlCommand::class => ConfigAbstractFactory::class,
  27. Command\ShortUrl\ListShortUrlsCommand::class => ConfigAbstractFactory::class,
  28. Command\ShortUrl\GetVisitsCommand::class => ConfigAbstractFactory::class,
  29. Command\ShortUrl\DeleteShortUrlCommand::class => ConfigAbstractFactory::class,
  30. Command\Visit\LocateVisitsCommand::class => ConfigAbstractFactory::class,
  31. Command\Api\GenerateKeyCommand::class => ConfigAbstractFactory::class,
  32. Command\Api\DisableKeyCommand::class => ConfigAbstractFactory::class,
  33. Command\Api\ListKeysCommand::class => ConfigAbstractFactory::class,
  34. Command\Tag\ListTagsCommand::class => ConfigAbstractFactory::class,
  35. Command\Tag\CreateTagCommand::class => ConfigAbstractFactory::class,
  36. Command\Tag\RenameTagCommand::class => ConfigAbstractFactory::class,
  37. Command\Tag\DeleteTagsCommand::class => ConfigAbstractFactory::class,
  38. Command\Db\CreateDatabaseCommand::class => ConfigAbstractFactory::class,
  39. Command\Db\MigrateDatabaseCommand::class => ConfigAbstractFactory::class,
  40. ],
  41. ],
  42. ConfigAbstractFactory::class => [
  43. GeolocationDbUpdater::class => [DbUpdater::class, Reader::class, 'Shlinkio\Shlink\LocalLockFactory'],
  44. Command\ShortUrl\GenerateShortUrlCommand::class => [Service\UrlShortener::class, 'config.url_shortener.domain'],
  45. Command\ShortUrl\ResolveUrlCommand::class => [Service\UrlShortener::class],
  46. Command\ShortUrl\ListShortUrlsCommand::class => [Service\ShortUrlService::class, 'config.url_shortener.domain'],
  47. Command\ShortUrl\GetVisitsCommand::class => [Service\VisitsTracker::class],
  48. Command\ShortUrl\DeleteShortUrlCommand::class => [Service\ShortUrl\DeleteShortUrlService::class],
  49. Command\Visit\LocateVisitsCommand::class => [
  50. Service\VisitService::class,
  51. IpLocationResolverInterface::class,
  52. LockFactory::class,
  53. GeolocationDbUpdater::class,
  54. ],
  55. Command\Api\GenerateKeyCommand::class => [ApiKeyService::class],
  56. Command\Api\DisableKeyCommand::class => [ApiKeyService::class],
  57. Command\Api\ListKeysCommand::class => [ApiKeyService::class],
  58. Command\Tag\ListTagsCommand::class => [Service\Tag\TagService::class],
  59. Command\Tag\CreateTagCommand::class => [Service\Tag\TagService::class],
  60. Command\Tag\RenameTagCommand::class => [Service\Tag\TagService::class],
  61. Command\Tag\DeleteTagsCommand::class => [Service\Tag\TagService::class],
  62. Command\Db\CreateDatabaseCommand::class => [
  63. LockFactory::class,
  64. SymfonyCli\Helper\ProcessHelper::class,
  65. PhpExecutableFinder::class,
  66. Connection::class,
  67. NoDbNameConnectionFactory::SERVICE_NAME,
  68. ],
  69. Command\Db\MigrateDatabaseCommand::class => [
  70. LockFactory::class,
  71. SymfonyCli\Helper\ProcessHelper::class,
  72. PhpExecutableFinder::class,
  73. ],
  74. ],
  75. ];