services: # PURGE.LOGGER # # Provides logging services to purge and its submodules, via a single channel. purge.logger: class: Drupal\purge\Logger\LoggerService arguments: ['@config.factory', '@purge.logger.parts_factory'] public: true tags: - { name: needs_destruction } purge.logger.parts_factory: class: Drupal\purge\Logger\LoggerChannelPartFactory arguments: ['@logger.channel.purge'] public: false logger.channel.purge: parent: logger.channel_base arguments: ['purge'] public: false # PURGE.QUEUERS # # Manages services tagged 'purge_queuer' by exposing them in end-user # interfaces and allowing users to disable/enable them. purge.queuers: class: Drupal\purge\Plugin\Purge\Queuer\QueuersService arguments: ['@plugin.manager.purge.queuer', '@config.factory'] public: true plugin.manager.purge.queuer: class: Drupal\purge\Plugin\Purge\Queuer\PluginManager parent: default_plugin_manager public: false # PURGE.INVALIDATION.FACTORY # # The invalidation object factory, generates 'purge instruction' value objects # on demand. Invalidations have state and flow freely between queue and # purgers, but can also be instantiated through the factory and get fed to the # purger straight away. purge.invalidation.factory: class: Drupal\purge\Plugin\Purge\Invalidation\InvalidationsService arguments: ['@plugin.manager.purge.invalidation', '@purge.purgers'] public: true plugin.manager.purge.invalidation: class: Drupal\purge\Plugin\Purge\Invalidation\PluginManager parent: default_plugin_manager public: false # PURGE.QUEUE: # # The queue service which stores, claims, releases and accepts invalidation # objects returning from 'purge.purgers'. purge.queue: class: Drupal\purge\Plugin\Purge\Queue\QueueService arguments: ['@plugin.manager.purge.queue', '@purge.logger', '@config.factory', '@purge.queue.txbuffer', '@purge.queue.stats', '@purge.invalidation.factory', '@purge.purgers'] public: true tags: - { name: needs_destruction } purge.queue.txbuffer: public: true class: Drupal\purge\Plugin\Purge\Queue\TxBuffer purge.queue.stats: class: Drupal\purge\Plugin\Purge\Queue\StatsTracker arguments: ['@state'] public: true tags: - { name: needs_destruction } plugin.manager.purge.queue: class: Drupal\purge\Plugin\Purge\Queue\PluginManager parent: default_plugin_manager public: false # PURGE.DIAGNOSTICS: # # The diagnostics service which monitors and warns for problematic situations # that can occur during purging. When it detects severe issues, it will # prevent all purges in the first place. purge.diagnostics: class: Drupal\purge\Plugin\Purge\DiagnosticCheck\DiagnosticsService arguments: ['@plugin.manager.purge.diagnostics'] public: true calls: - [setContainer, ['@service_container']] plugin.manager.purge.diagnostics: class: Drupal\purge\Plugin\Purge\DiagnosticCheck\PluginManager parent: default_plugin_manager public: false # PURGE.PROCESSORS # # Processors pull items from the queue and initiate purging activity. purge.processors: class: Drupal\purge\Plugin\Purge\Processor\ProcessorsService arguments: ['@plugin.manager.purge.processor', '@config.factory'] public: true plugin.manager.purge.processor: class: Drupal\purge\Plugin\Purge\Processor\PluginManager parent: default_plugin_manager public: false # PURGE.PURGERS: # # The executive service which lets enabled purgers invalidate external caches. purge.purgers: class: Drupal\purge\Plugin\Purge\Purger\PurgersService arguments: ['@plugin.manager.purge.purgers', '@purge.logger', '@purge.purgers.tracker.capacity', '@purge.purgers.tracker.runtime_measurement', '@config.factory', '@lock', '@purge.diagnostics'] public: true purge.purgers.tracker.capacity: class: Drupal\purge\Plugin\Purge\Purger\CapacityTracker public: true purge.purgers.tracker.runtime_measurement: class: Drupal\purge\Plugin\Purge\Purger\RuntimeMeasurementTracker arguments: ['@state'] public: true tags: - { name: needs_destruction } plugin.manager.purge.purgers: class: Drupal\purge\Plugin\Purge\Purger\PluginManager parent: default_plugin_manager public: false # PURGE.TAGSHEADERS # # Discovered tagsheader plugins, register required response headers using the # CacheableResponseSubscriber declared below. Each plugin defines the name # of the header to be send out and can override header value formatting. purge.tagsheaders: class: Drupal\purge\Plugin\Purge\TagsHeader\TagsHeadersService arguments: ['@plugin.manager.purge.tagsheader'] public: true calls: - [setContainer, ['@service_container']] purge.tagsheaders.cacheable_response_subscriber: class: Drupal\purge\EventSubscriber\CacheableResponseSubscriber arguments: ['@purge.tagsheaders'] public: true tags: - { name: event_subscriber } plugin.manager.purge.tagsheader: class: Drupal\purge\Plugin\Purge\TagsHeader\PluginManager parent: default_plugin_manager public: false