1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
-
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
- namespace Symfony\Component\HttpKernel\CacheWarmer;
-
- /**
- * Aggregates several cache warmers into a single one.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- *
- * @final
- */
- class CacheWarmerAggregate implements CacheWarmerInterface
- {
- private $warmers;
- private $optionalsEnabled = false;
- private $onlyOptionalsEnabled = false;
-
- public function __construct(iterable $warmers = array())
- {
- $this->warmers = $warmers;
- }
-
- public function enableOptionalWarmers()
- {
- $this->optionalsEnabled = true;
- }
-
- public function enableOnlyOptionalWarmers()
- {
- $this->onlyOptionalsEnabled = $this->optionalsEnabled = true;
- }
-
- /**
- * Warms up the cache.
- *
- * @param string $cacheDir The cache directory
- */
- public function warmUp($cacheDir)
- {
- foreach ($this->warmers as $warmer) {
- if (!$this->optionalsEnabled && $warmer->isOptional()) {
- continue;
- }
- if ($this->onlyOptionalsEnabled && !$warmer->isOptional()) {
- continue;
- }
-
- $warmer->warmUp($cacheDir);
- }
- }
-
- /**
- * Checks whether this warmer is optional or not.
- *
- * @return bool always false
- */
- public function isOptional()
- {
- return false;
- }
- }
|