PreWarmableInterface.php
Namespace
Drupal\Core\PreWarmFile
-
core/
lib/ Drupal/ Core/ PreWarm/ PreWarmableInterface.php
View source
<?php
namespace Drupal\Core\PreWarm;
/**
* Interface for services with prewarmable caches.
*
* This interface should be implemented alongside the cache_prewarmable
* service tag.
*
* You should consider carefully whether your service will benefit from
* implementing this interface, it should only be used when:
* 1. Your service has an expensive cache rebuild, such as attribute or YAML
* discovery.
* 2. Your service is in the critical path of most requests to the site and is
* likely to be impacted by a cache stampede. If it's mainly used on cron or
* admin pages, then prewarming would be counter-productive.
* Additionally note that there is no guaranteed code path by which your service
* will be called, so it can not (for example) assume that routing has been
* completed. You should either ensure that you can prewarm your cache without
* knowing the route or current theme, or return early if these aren't
* available. You should also ensure that if your ::preWarm() method is called
* early in a request, that later requests to your service retrieve the cached
* information from memory rather than requesting it from the cache bin again.
*
* @see Drupal\Core\Prewarm\PreWarmerInterface
*/
interface PreWarmableInterface {
/**
* Build any cache item or items that this service relies on.
*/
public function preWarm() : void;
}
Interfaces
Title | Deprecated | Summary |
---|---|---|
PreWarmableInterface | Interface for services with prewarmable caches. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.