本文整理匯總了PHP中Symfony\Component\Templating\TemplateReferenceInterface::get方法的典型用法代碼示例。如果您正苦於以下問題:PHP TemplateReferenceInterface::get方法的具體用法?PHP TemplateReferenceInterface::get怎麽用?PHP TemplateReferenceInterface::get使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Symfony\Component\Templating\TemplateReferenceInterface
的用法示例。
在下文中一共展示了TemplateReferenceInterface::get方法的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: load
public function load(TemplateReferenceInterface $template)
{
if (method_exists($this, $method = 'get' . ucfirst($template->get('name')) . 'Template')) {
return new StringStorage($this->{$method}());
}
return false;
}
示例2: 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);
}
示例3: locateTemplate
/**
* @param TemplateReferenceInterface $template
* @param string $bundle
* @param \Claroline\CoreBundle\Entity\Theme\Theme|null $theme
* @param string $currentPath
*
* @return TemplateReferenceInterface
*/
private function locateTemplate(TemplateReferenceInterface $template, $bundle, $theme, $currentPath)
{
$newTemplate = clone $template;
$controller = $template->get('controller');
if (null !== $theme) {
$controller = sprintf('theme/%s/%s', $template->get('bundle'), $template->get('controller'));
}
$newTemplate->set('bundle', $bundle)->set('controller', $controller);
try {
$this->locator->locate($newTemplate->getPath(), $currentPath);
} catch (\Exception $e) {
$newTemplate = $template;
}
return $newTemplate;
}
示例4: load
/**
* Loads a template.
*
* @param TemplateReferenceInterface $template A template
*
* @return Storage|Boolean false if the template cannot be loaded, a Storage instance otherwise
*
* @api
*/
public function load(TemplateReferenceInterface $template)
{
$file = $template->get('name');
if (self::isAbsolutePath($file) && file_exists($file)) {
return new FileStorage($file);
}
$replacements = array();
foreach ($template->all() as $key => $value) {
$replacements['%' . $key . '%'] = $value;
}
$logs = array();
foreach ($this->templatePathPatterns as $templatePathPattern) {
if (is_file($file = strtr($templatePathPattern, $replacements)) && is_readable($file)) {
if (null !== $this->debugger) {
$this->debugger->log(sprintf('Loaded template file "%s"', $file));
}
return new FileStorage($file);
}
if (null !== $this->debugger) {
$logs[] = sprintf('Failed loading template file "%s"', $file);
}
}
if (null !== $this->debugger) {
foreach ($logs as $log) {
$this->debugger->log($log);
}
}
return false;
}
示例5: 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);
}
示例6: 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)
{
$file = $template->get('name');
if (self::isAbsolutePath($file) && is_file($file)) {
return new FileStorage($file);
}
$replacements = array();
foreach ($template->all() as $key => $value) {
$replacements['%' . $key . '%'] = $value;
}
$fileFailures = array();
foreach ($this->templatePathPatterns as $templatePathPattern) {
if (is_file($file = strtr($templatePathPattern, $replacements)) && is_readable($file)) {
if (null !== $this->logger) {
$this->logger->debug('Loaded template file.', array('file' => $file));
}
return new FileStorage($file);
}
if (null !== $this->logger) {
$fileFailures[] = $file;
}
}
// only log failures if no template could be loaded at all
foreach ($fileFailures as $file) {
if (null !== $this->logger) {
$this->logger->debug('Failed loading template file.', array('file' => $file));
}
}
return false;
}
示例7: 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);
}
示例8: load
/**
* Loads a template.
*
* @param TemplateReferenceInterface $template A template
*
* @return Storage|bool false if the template cannot be loaded, a Storage instance otherwise
*
* @api
*/
public function load(TemplateReferenceInterface $template)
{
$method = $template->get('name');
if (!method_exists($this->templates, $method)) {
return false;
}
return new ClassStorage([$this->templates, $method]);
}
示例9: 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.");
}
$curTheme = $this->themeManager->getActiveTheme();
if ($template instanceof ThemeTemplateReference && $template->get('theme')) {
$this->themeManager->setActiveTheme($template->get('theme'));
}
$key = $this->getCacheKey($template);
if (!isset($this->cache[$key])) {
try {
$this->cache[$key] = $this->locator->locate($template->getPath(), $currentPath);
} catch (\InvalidArgumentException $e) {
throw new \InvalidArgumentException(sprintf('Unable to find template "%s" in "%s".', $template, $e->getMessage()), 0, $e);
}
}
$this->themeManager->setActiveTheme($curTheme);
return $this->cache[$key];
}
示例10: load
public function load(TemplateReferenceInterface $template)
{
$file = $template->get('name');
foreach ($this->paths as $path) {
$template->set('name', $path . '/' . $file);
$result = parent::load($template);
if ($result) {
return $result;
}
}
return false;
}
示例11: addTemplate
/**
* Adds twig templates to the tracker.
*
* @param TemplateReferenceInterface $reference
* @return Tracker
*/
private function addTemplate(TemplateReferenceInterface $reference)
{
if ($reference->get('engine') !== 'twig') {
return $this;
}
if (false !== ($path = $this->resolvePath($reference->getPath()))) {
$this->templates[] = $path;
return $this->addPath($path);
}
// Can't resolve the template. This shouldn't happen, unless somebody placed a template in a very weird place.
$this->untracked_templates[] = $reference->getPath();
return $this;
}
示例12: addTemplate
/**
* Adds twig templates to the tracker.
*
* @param TemplateReferenceInterface $reference the reference to the twig template to be added.
* @return Tracker this instance
*/
private function addTemplate(TemplateReferenceInterface $reference)
{
if ($reference->get('engine') !== 'twig') {
return $this;
}
if (false !== ($path = $this->resolvePath($reference->getPath()))) {
$this->templates[] = $path;
return $this->addPath($path);
}
return $this;
}