В документации Twig описано, как установить формат даты по умолчанию для фильтра date
:
$twig = new Twig_Environment($loader);
$twig->getExtension('core')->setDateFormat('d/m/Y', '%d days');
Как это сделать глобально в Symfony2?
В документации Twig описано, как установить формат даты по умолчанию для фильтра date
:
$twig = new Twig_Environment($loader);
$twig->getExtension('core')->setDateFormat('d/m/Y', '%d days');
Как это сделать глобально в Symfony2?
Для более детального решения.
в вашем пакете создайте папку "Службы", которая может содержать прослушиватель событий
namespace MyApp\AppBundle\Services;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
class TwigDateRequestListener
{
protected $twig;
function __construct(\Twig_Environment $twig) {
$this->twig = $twig;
}
public function onKernelRequest(GetResponseEvent $event) {
$this->twig->getExtension('core')->setDateFormat('Y-m-d', '%d days');
}
}
Затем мы захотим, чтобы symfony нашел этого слушателя.
В файле Resources/config/services.yml
поставьте
services:
twigdate.listener.request:
class: MyApp\AppBundle\Services\TwigDateRequestListener
arguments: [@twig]
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
указав @twig в качестве аргумента, он будет введен в TwigDateRequestListener
Сделайте так, чтобы ваш импорт services.yml в верхней части app/config.yml
imports:
- { resource: @MyAppAppBundle/Resources/config/services.yml }
Теперь вы можете пропустить формат в фильтре даты как таковой
{{ myentity.dateAdded|date }}
и он должен получить форматирование из службы.
Как и в Symfony 2.7, вы можете настроить формат даты по умолчанию во всем мире в config.yml
:
# app/config/config.yml
twig:
date:
format: d.m.Y, H:i:s
interval_format: '%%d days'
timezone: Europe/Paris
То же самое возможно и для фильтра number_format
. Подробности можно найти здесь: http://symfony.com/blog/new-in-symfony-2-7-default-date-and-number-format-configuration
В контроллере вы можете сделать
$this->get('twig')->getExtension('core')->setDateFormat('d/m/Y', '%d days');
Глобальные параметры конфигурации Twig можно найти на:
http://symfony.com/doc/2.0/reference/configuration/twig.html
По-моему, здесь должен быть добавлен параметр date_format, так как использование пакета Sonata Intl для большинства пользователей переполняется.