services.yml 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. services:
  2. _defaults:
  3. autowire: true
  4. autoconfigure: true
  5. public: false
  6. bind:
  7. # services
  8. $redis: '@snc_redis.default_client'
  9. # params
  10. $awsMetadata: '%aws_metadata%'
  11. $databaseHost: '%database_host%'
  12. $databaseName: '%database_name%'
  13. $databaseUser: '%database_user%'
  14. $databasePassword: '%database_password%'
  15. $webDir: '%kernel.root_dir%/../web/'
  16. $metadataDir: '%packagist_metadata_dir%'
  17. Packagist\WebBundle\Command\:
  18. resource: '../../Command/*'
  19. tags: ['console.command']
  20. Packagist\WebBundle\Controller\:
  21. resource: '../../Controller/*'
  22. tags: ['controller.service_arguments']
  23. packagist.twig.extension:
  24. public: true
  25. class: Packagist\WebBundle\Twig\PackagistExtension
  26. arguments: [ '@packagist.provider_manager', '@security.csrf.token_manager' ]
  27. tags:
  28. - { name: twig.extension }
  29. twig.extension.text:
  30. public: true
  31. class: Twig_Extensions_Extension_Text
  32. tags:
  33. - { name: twig.extension }
  34. packagist.cache_listener:
  35. public: true
  36. class: Packagist\WebBundle\EventListener\CacheListener
  37. tags:
  38. - { name: kernel.event_listener, event: kernel.response, method: onResponse }
  39. packagist.logged_in_user_cannot_register_listener:
  40. public: true
  41. class: Packagist\WebBundle\EventListener\LoggedInUserCannotRegisterListener
  42. arguments:
  43. - '@security.authorization_checker'
  44. - '@router'
  45. tags:
  46. - { name: kernel.event_subscriber }
  47. packagist.registration_listener:
  48. public: true
  49. class: Packagist\WebBundle\EventListener\RegistrationListener
  50. arguments: [ '@fos_user.util.token_generator' ]
  51. tags:
  52. - { name: kernel.event_subscriber }
  53. guzzle_client:
  54. public: true
  55. class: GuzzleHttp\Client
  56. arguments: [{timeout: 3}]
  57. packagist.package_dumper:
  58. public: true
  59. class: Packagist\WebBundle\Package\SymlinkDumper
  60. arguments: [ '@doctrine', '@filesystem', '@router', '@snc_redis.default_client', '%kernel.root_dir%/../web/', '%packagist_metadata_dir%', '%packagist_dumper_compress%', '%aws_metadata%' ]
  61. packagist.user_provider:
  62. class: Packagist\WebBundle\Security\Provider\UserProvider
  63. arguments: ['@fos_user.user_manager', '@fos_user.user_provider.username_email', '@scheduler']
  64. packagist.user_repository:
  65. public: true
  66. class: Packagist\WebBundle\Entity\UserRepository
  67. factory: ['@doctrine', getRepository]
  68. arguments: ['PackagistWebBundle:User']
  69. packagist.package_repository:
  70. public: true
  71. class: Packagist\WebBundle\Entity\PackageRepository
  72. factory: ['@doctrine', getRepository]
  73. arguments: ['PackagistWebBundle:Package']
  74. packagist.version_repository:
  75. public: true
  76. class: Packagist\WebBundle\Entity\VersionRepository
  77. factory: ['@doctrine', getRepository]
  78. arguments: ['PackagistWebBundle:Version']
  79. calls:
  80. - [ setRedis, [ '@snc_redis.cache_client' ]]
  81. packagist.package_updater:
  82. public: true
  83. class: Packagist\WebBundle\Package\Updater
  84. arguments: ['@doctrine']
  85. fos_user.util.user_manipulator:
  86. public: true
  87. class: Packagist\WebBundle\Util\UserManipulator
  88. arguments:
  89. - '@fos_user.user_manager'
  90. - '@fos_user.util.token_generator'
  91. - '@event_dispatcher'
  92. - '@request_stack'
  93. packagist.oauth.registration_form_handler:
  94. public: true
  95. class: Packagist\WebBundle\Form\Handler\OAuthRegistrationFormHandler
  96. arguments: ['@fos_user.user_manager', '@fos_user.util.token_generator']
  97. Packagist\WebBundle\Form\Type\OAuthRegistrationFormType:
  98. tags:
  99. - { name: form.type, alias: packagist_oauth_user_registration }
  100. packagist.oauth.registration_form:
  101. public: true
  102. factory: ['@form.factory', create]
  103. class: Symfony\Component\Form\Form
  104. arguments:
  105. - 'Packagist\WebBundle\Form\Type\OAuthRegistrationFormType'
  106. packagist.download_manager:
  107. public: true
  108. class: Packagist\WebBundle\Model\DownloadManager
  109. arguments:
  110. - '@snc_redis.default_client'
  111. - '@doctrine'
  112. packagist.provider_manager:
  113. public: true
  114. class: Packagist\WebBundle\Model\ProviderManager
  115. arguments:
  116. - '@snc_redis.default_client'
  117. - '@packagist.package_repository'
  118. packagist.favorite_manager:
  119. public: true
  120. class: Packagist\WebBundle\Model\FavoriteManager
  121. arguments:
  122. - '@snc_redis.default_client'
  123. - '@packagist.package_repository'
  124. - '@packagist.user_repository'
  125. packagist.package_manager:
  126. public: true
  127. class: Packagist\WebBundle\Model\PackageManager
  128. arguments:
  129. - '@doctrine'
  130. - '@mailer'
  131. - '@twig'
  132. - '@logger'
  133. - { from: '%mailer_from_email%', fromName: '%mailer_from_name%' }
  134. - '@packagist.provider_manager'
  135. - '@packagist.algolia.client'
  136. - '%algolia.index_name%'
  137. - '@github_user_migration_worker'
  138. - '%packagist_metadata_dir%'
  139. packagist.profile.form.type:
  140. public: true
  141. class: Packagist\WebBundle\Form\Type\ProfileFormType
  142. arguments: ['%fos_user.model.user.class%']
  143. tags:
  144. - { name: form.type, alias: packagist_user_profile }
  145. packagist.menu_builder:
  146. public: true
  147. class: Packagist\WebBundle\Menu\MenuBuilder
  148. arguments: ['@knp_menu.factory', '@security.token_storage', '@translator']
  149. packagist.menu.user:
  150. public: true
  151. class: Knp\Menu\MenuItem
  152. factory: ['@packagist.menu_builder', createUserMenu]
  153. tags:
  154. - { name: knp_menu.menu, alias: user_menu }
  155. packagist.menu.profile:
  156. public: true
  157. class: Knp\Menu\MenuItem
  158. factory: ['@packagist.menu_builder', createProfileMenu]
  159. tags:
  160. - { name: knp_menu.menu, alias: profile_menu }
  161. packagist.algolia.client:
  162. public: true
  163. class: Algolia\AlgoliaSearch\SearchClient
  164. arguments: ['%algolia.app_id%', '%algolia.admin_key%']
  165. factory: ['Algolia\AlgoliaSearch\SearchClient', create]
  166. packagist.queue_worker:
  167. public: true
  168. class: Packagist\WebBundle\Service\QueueWorker
  169. arguments:
  170. - "@snc_redis.default_client"
  171. - "@doctrine"
  172. - "@logger"
  173. - 'package:updates': '@updater_worker'
  174. 'githubuser:migrate': '@github_user_migration_worker'
  175. scheduler:
  176. public: true
  177. class: Packagist\WebBundle\Service\Scheduler
  178. arguments: ["@snc_redis.default_client", "@doctrine"]
  179. locker:
  180. public: true
  181. class: Packagist\WebBundle\Service\Locker
  182. arguments: ["@doctrine"]
  183. updater_worker:
  184. public: true
  185. class: Packagist\WebBundle\Service\UpdaterWorker
  186. arguments: ["@logger", "@doctrine", "@packagist.package_updater", "@locker", "@scheduler", "@packagist.package_manager", "@packagist.download_manager"]
  187. github_user_migration_worker:
  188. public: true
  189. class: Packagist\WebBundle\Service\GitHubUserMigrationWorker
  190. arguments: ["@logger", "@doctrine", "@guzzle_client", "%github.webhook_secret%"]
  191. parameters:
  192. security.exception_listener.class: Packagist\WebBundle\Security\ExceptionListener