本文整理汇总了PHP中Symfony\Component\Templating\TemplateReferenceInterface::getLogicalName方法的典型用法代码示例。如果您正苦于以下问题:PHP TemplateReferenceInterface::getLogicalName方法的具体用法?PHP TemplateReferenceInterface::getLogicalName怎么用?PHP TemplateReferenceInterface::getLogicalName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\Templating\TemplateReferenceInterface
的用法示例。
在下文中一共展示了TemplateReferenceInterface::getLogicalName方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: load
/**
* Loads a template.
*
* @param TemplateReferenceInterface $template A template
*
* @return Storage|bool false if the template cannot be loaded, a Storage instance otherwise
*/
public function load(TemplateReferenceInterface $template)
{
$key = hash('sha256', $template->getLogicalName());
$dir = $this->dir . DIRECTORY_SEPARATOR . substr($key, 0, 2);
$file = substr($key, 2) . '.tpl';
$path = $dir . DIRECTORY_SEPARATOR . $file;
if (is_file($path)) {
if (null !== $this->logger) {
$this->logger->debug('Fetching template from cache.', array('name' => $template->get('name')));
} elseif (null !== $this->debugger) {
// just for BC, to be removed in 3.0
$this->debugger->log(sprintf('Fetching template "%s" from cache.', $template->get('name')));
}
return new FileStorage($path);
}
if (false === ($storage = $this->loader->load($template))) {
return false;
}
$content = $storage->getContent();
if (!is_dir($dir)) {
mkdir($dir, 0777, true);
}
file_put_contents($path, $content);
if (null !== $this->logger) {
$this->logger->debug('Storing template in cache.', array('name' => $template->get('name')));
} elseif (null !== $this->debugger) {
// just for BC, to be removed in 3.0
$this->debugger->log(sprintf('Storing template "%s" in cache.', $template->get('name')));
}
return new FileStorage($path);
}
示例2: load
/**
* Loads a template.
*
* @param TemplateReferenceInterface $template A template
*
* @return Storage|Boolean false if the template cannot be loaded, a Storage instance otherwise
*/
public function load(TemplateReferenceInterface $template)
{
$key = md5($template->getLogicalName());
$dir = $this->dir . DIRECTORY_SEPARATOR . substr($key, 0, 2);
$file = substr($key, 2) . '.tpl';
$path = $dir . DIRECTORY_SEPARATOR . $file;
if (file_exists($path)) {
if (null !== $this->debugger) {
$this->debugger->log(sprintf('Fetching template "%s" from cache', $template->get('name')));
}
return new FileStorage($path);
}
if (false === ($storage = $this->loader->load($template))) {
return false;
}
$content = $storage->getContent();
if (!file_exists($dir)) {
mkdir($dir, 0777, true);
}
file_put_contents($path, $content);
if (null !== $this->debugger) {
$this->debugger->log(sprintf('Storing template "%s" in cache', $template->get('name')));
}
return new FileStorage($path);
}
示例3: load
/**
* Loads a template.
*
* @param TemplateReferenceInterface $template A template
*
* @return Storage|bool false if the template cannot be loaded, a Storage instance otherwise
*/
public function load(TemplateReferenceInterface $template)
{
$key = md5($template->getLogicalName());
$dir = $this->dir . DIRECTORY_SEPARATOR . substr($key, 0, 2);
$file = substr($key, 2) . '.tpl';
$path = $dir . DIRECTORY_SEPARATOR . $file;
if (is_file($path)) {
if (null !== $this->debugger) {
$this->debugger->log(sprintf('Fetching template "%s" from cache', $template->get('name')));
}
return new FileStorage($path);
}
if (false === ($storage = $this->loader->load($template))) {
return false;
}
$content = $storage->getContent();
if (!is_dir($dir) && !@mkdir($dir, 0777, true) && !is_dir($dir)) {
throw new \RuntimeException(sprintf('Cache Loader was not able to create directory "%s"', $dir));
}
file_put_contents($path, $content);
if (null !== $this->debugger) {
$this->debugger->log(sprintf('Storing template "%s" in cache', $template->get('name')));
}
return new FileStorage($path);
}
示例4: getCacheKey
/**
* Returns a full path for a given file.
*
* @param TemplateReferenceInterface $template A template
*
* @return string The full path for the file
*/
protected function getCacheKey($template)
{
$name = $template->getLogicalName();
if ($this->themeManager->getActiveTheme()) {
$name .= '|' . $this->themeManager->getActiveTheme();
}
return $name;
}
示例5:
function it_throws_resource_not_found_exception_if_the_location_found_in_cache_is_null(TemplateLocatorInterface $decoratedTemplateLocator, Cache $cache, TemplateReferenceInterface $template, ThemeInterface $theme)
{
$template->getLogicalName()->willReturn('Logical:Name');
$template->getPath()->willReturn('@Acme/template.html.twig');
$theme->getName()->willReturn('theme/name');
$cache->contains('Logical:Name|theme/name')->willReturn(true);
$cache->fetch('Logical:Name|theme/name')->willReturn(null);
$decoratedTemplateLocator->locateTemplate(Argument::cetera())->shouldNotBeCalled();
$this->shouldThrow(ResourceNotFoundException::class)->during('locateTemplate', [$template, $theme]);
}
示例6:
function it_builds_cache_by_warming_up_every_template_and_every_theme_together(TemplateFinderInterface $templateFinder, TemplateLocatorInterface $templateLocator, ThemeRepositoryInterface $themeRepository, Cache $cache, ThemeInterface $theme, TemplateReferenceInterface $firstTemplate, TemplateReferenceInterface $secondTemplate)
{
$templateFinder->findAllTemplates()->willReturn([$firstTemplate, $secondTemplate]);
$themeRepository->findAll()->willReturn([$theme]);
$theme->getName()->willReturn('theme/name');
$firstTemplate->getLogicalName()->willReturn('Logical:Name:First');
$secondTemplate->getLogicalName()->willReturn('Logical:Name:Second');
$templateLocator->locateTemplate($firstTemplate, $theme)->willReturn('/First/Theme/index.html.twig');
$templateLocator->locateTemplate($secondTemplate, $theme)->willThrow(ResourceNotFoundException::class);
$cache->save('Logical:Name:First|theme/name', '/First/Theme/index.html.twig')->shouldBeCalled();
$cache->save('Logical:Name:Second|theme/name', null)->shouldBeCalled();
$this->warmUp(null);
}
示例7: locate
/**
* Returns a full path for a given file.
*
* @param TemplateReferenceInterface $template A template
* @param string $currentPath Unused
* @param Boolean $first Unused
*
* @return string The full path for the file
*
* @throws \InvalidArgumentException When the template is not an instance of TemplateReferenceInterface
* @throws \InvalidArgumentException When the template file can not be found
*/
public function locate($template, $currentPath = null, $first = true)
{
if (!$template instanceof TemplateReferenceInterface) {
throw new \InvalidArgumentException("The template must be an instance of TemplateReferenceInterface.");
}
$key = $template->getLogicalName();
if (isset($this->cache[$key])) {
return $this->cache[$key];
}
try {
return $this->cache[$key] = $this->locator->locate($template->getPath(), $currentPath);
} catch (\InvalidArgumentException $e) {
throw new \InvalidArgumentException(sprintf('Unable to find template "%s" : "%s".', $template, $e->getMessage()), 0, $e);
}
}
示例8: getCacheKey
/**
* Returns a full path for a given file.
*
* @param TemplateReferenceInterface $template A template
*
* @return string The full path for the file
*/
protected function getCacheKey($template)
{
return $template->getLogicalName();
}
示例9: getCacheKey
/**
* @param TemplateReferenceInterface $template
* @param ThemeInterface $theme
*
* @return string
*/
private function getCacheKey(TemplateReferenceInterface $template, ThemeInterface $theme)
{
return $template->getLogicalName() . '|' . $theme->getSlug();
}
示例10: load
public function load(TemplateReferenceInterface $template)
{
if (isset($this->templates[$template->getLogicalName()])) {
return new StringStorage($this->templates[$template->getLogicalName()]);
}
return false;
}
示例11: load
public function load(TemplateReferenceInterface $template)
{
if (isset($this->templates[$template->getLogicalName()])) {
$storage = new StringStorage($this->templates[$template->getLogicalName()]);
return 'string:' . $storage->getContent();
}
return false;
}
示例12: getCacheKey
/**
* @param TemplateReferenceInterface $template
* @param ThemeInterface|null $theme
*
* @return string
*/
private function getCacheKey(TemplateReferenceInterface $template, ThemeInterface $theme = null)
{
$key = $template->getLogicalName();
if (null !== $theme) {
$key .= '|' . $theme->getLogicalName();
}
return $key;
}
示例13: getCacheKey
/**
* Returns cache key for a given template
*
* @param TemplateReferenceInterface $template
*
* @return string
*/
protected function getCacheKey($template)
{
$name = $template->getLogicalName();
return $name;
}
示例14: isFresh
/**
* {@inheritdoc}
*/
public function isFresh(\Symfony\Component\Templating\TemplateReferenceInterface $template, $time)
{
return $this->_themeTemplateLocator->isFresh($template->getLogicalName(), $time);
}