W moim szablonie chcę wyprowadzić strefę czasową serwera.Używanie niestandardowej funkcji w gałązce
Mój szablon ma coś podobnego
{{ getservertimezone }}
następnie w config services.yml dla tej wiązce mam
my.twig.extension:
class: My\WebsiteBundle\Extensions\Twig\SomeTemplateHelper
tags:
- { name: twig.extension }
A moja SomeTemplateHelper
wygląda
namespace My\WebsiteBundle\Extensions\Twig;
class SomeTemplateHelper extends \Twig_Extension
{
public function getFilters()
{
return array(
'getservertimezone' => new \Twig_Filter_Method($this, 'getServerTimeZone'),
);
}
public function getServerTimeZone()
{
if (date_default_timezone_get()) {
return date_default_timezone_get();
} else if (ini_get('date.timezone')) {
return ini_get('date.timezone');
} else {
return false;
}
}
public function getName()
{
return 'some_helper';
}
}
ale mogę nie nazwać tej metody, chyba że jest używana jak filtr {{ someval | getservertimezone }}
, czy istnieje sposób o po prostu zadzwoń do straigh {{ getservertimezone() }}
?
Twig_Function_Method jest przestarzałe, użyj zamiast tego Twig_SimpleFunction. Otwieram problem w dokumencie symfony https://github.com/symfony/symfony-docs/issues/3275 – gagarine
@gagarine poprawiono –