2015-08-17 17:00:26 -07:00
< ? 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 >
2018-11-23 12:29:20 +00:00
*
* @ final since version 3.4
2015-08-17 17:00:26 -07:00
*/
class CacheWarmerAggregate implements CacheWarmerInterface
{
protected $warmers = array ();
protected $optionalsEnabled = false ;
2018-11-23 12:29:20 +00:00
private $triggerDeprecation = false ;
2015-08-17 17:00:26 -07:00
2018-11-23 12:29:20 +00:00
public function __construct ( $warmers = array ())
2015-08-17 17:00:26 -07:00
{
foreach ( $warmers as $warmer ) {
$this -> add ( $warmer );
}
2018-11-23 12:29:20 +00:00
$this -> triggerDeprecation = true ;
2015-08-17 17:00:26 -07:00
}
public function enableOptionalWarmers ()
{
$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 ;
}
$warmer -> warmUp ( $cacheDir );
}
}
/**
* Checks whether this warmer is optional or not .
*
* @ return bool always false
*/
public function isOptional ()
{
return false ;
}
2018-11-23 12:29:20 +00:00
/**
* @ deprecated since version 3.4 , to be removed in 4.0 , inject the list of clearers as a constructor argument instead .
*/
2015-08-17 17:00:26 -07:00
public function setWarmers ( array $warmers )
{
2018-11-23 12:29:20 +00:00
@ trigger_error ( sprintf ( 'The "%s()" method is deprecated since Symfony 3.4 and will be removed in 4.0, inject the list of clearers as a constructor argument instead.' , __METHOD__ ), E_USER_DEPRECATED );
2015-08-17 17:00:26 -07:00
$this -> warmers = array ();
foreach ( $warmers as $warmer ) {
$this -> add ( $warmer );
}
}
2018-11-23 12:29:20 +00:00
/**
* @ deprecated since version 3.4 , to be removed in 4.0 , inject the list of clearers as a constructor argument instead .
*/
2015-08-17 17:00:26 -07:00
public function add ( CacheWarmerInterface $warmer )
{
2018-11-23 12:29:20 +00:00
if ( $this -> triggerDeprecation ) {
@ trigger_error ( sprintf ( 'The "%s()" method is deprecated since Symfony 3.4 and will be removed in 4.0, inject the list of clearers as a constructor argument instead.' , __METHOD__ ), E_USER_DEPRECATED );
}
2015-08-17 17:00:26 -07:00
$this -> warmers [] = $warmer ;
}
}