<?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\Templating;
@trigger_error('The '.TemplateReference::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
use Symfony\Component\Templating\TemplateReference as BaseTemplateReference;
/**
* Internal representation of a template.
*
* @author Victor Berchet <victor@suumit.com>
*
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
*/
class TemplateReference extends BaseTemplateReference
{
public function __construct(string $bundle = null, string $controller = null, string $name = null, string $format = null, string $engine = null)
{
$this->parameters = [
'bundle' => $bundle,
'controller' => $controller,
'name' => $name,
'format' => $format,
'engine' => $engine,
];
}
/**
* Returns the path to the template
* - as a path when the template is not part of a bundle
* - as a resource when the template is part of a bundle.
*
* @return string A path to the template or a resource
*/
public function getPath()
{
$controller = str_replace('\\', '/', $this->get('controller'));
$path = (empty($controller) ? '' : $controller.'/').$this->get('name').'.'.$this->get('format').'.'.$this->get('engine');
return empty($this->parameters['bundle']) ? 'views/'.$path : '@'.$this->get('bundle').'/Resources/views/'.$path;
}
/**
* {@inheritdoc}
*/
public function getLogicalName()
{
return sprintf('%s:%s:%s.%s.%s', $this->parameters['bundle'], $this->parameters['controller'], $this->parameters['name'], $this->parameters['format'], $this->parameters['engine']);
}
}