<?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\Bundle\FrameworkBundle\CacheWarmer; 
 
@trigger_error('The '.TemplatePathsCacheWarmer::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', \E_USER_DEPRECATED); 
 
use Symfony\Bundle\FrameworkBundle\Templating\Loader\TemplateLocator; 
use Symfony\Component\Filesystem\Filesystem; 
use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmer; 
 
/** 
 * Computes the association between template names and their paths on the disk. 
 * 
 * @author Fabien Potencier <fabien@symfony.com> 
 * 
 * @deprecated since version 4.3, to be removed in 5.0; use Twig instead. 
 */ 
class TemplatePathsCacheWarmer extends CacheWarmer 
{ 
    protected $finder; 
    protected $locator; 
 
    public function __construct(TemplateFinderInterface $finder, TemplateLocator $locator) 
    { 
        $this->finder = $finder; 
        $this->locator = $locator; 
    } 
 
    /** 
     * Warms up the cache. 
     * 
     * @param string $cacheDir The cache directory 
     */ 
    public function warmUp($cacheDir) 
    { 
        $filesystem = new Filesystem(); 
        $templates = []; 
 
        foreach ($this->finder->findAllTemplates() as $template) { 
            $templates[$template->getLogicalName()] = rtrim($filesystem->makePathRelative($this->locator->locate($template), $cacheDir), '/'); 
        } 
 
        $templates = str_replace("' => '", "' => __DIR__.'/", var_export($templates, true)); 
 
        $this->writeCacheFile($cacheDir.'/templates.php', sprintf("<?php return %s;\n", $templates)); 
    } 
 
    /** 
     * Checks whether this warmer is optional or not. 
     * 
     * @return bool always true 
     */ 
    public function isOptional() 
    { 
        return true; 
    } 
}