58 lines
1.8 KiB
PHP
58 lines
1.8 KiB
PHP
<?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;
|
|
|
|
use Symfony\Component\Templating\TemplateReference as BaseTemplateReference;
|
|
|
|
/**
|
|
* Internal representation of a template.
|
|
*
|
|
* @author Victor Berchet <victor@suumit.com>
|
|
*/
|
|
class TemplateReference extends BaseTemplateReference
|
|
{
|
|
public function __construct(string $bundle = null, string $controller = null, string $name = null, string $format = null, string $engine = null)
|
|
{
|
|
$this->parameters = array(
|
|
'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']);
|
|
}
|
|
}
|