2013-12-10 3 views
1

Я хочу использовать функцию strftime во время команды консоли, используя определение локали в моем файле configuration.yml.Установить locale в команде Console со слушателем

Поскольку у меня нет запроса, сеанса и т. Д. Во время команды консоли, я действительно не знаю, как добиться этого в хорошем смысле, не взломав его в код. Сейчас мой код выглядит следующим образом:

$date = "20131210"; 
$dateObject = \DateTime::createFromFormat("Ymd", $date); 
setlocale(LC_ALL, $this->locale); 
return strftime("%e %A %G", $dateObject->getTimestamp()); 

Что я actualy хочу это слушатель, который каким-то образом устанавливает свою локаль.

Любые предложения?

ответ

0

Я знаю, что вопрос немного устарел, но, возможно, кто-то найдет следующее полезное, поскольку это не так очевидно.

Если ваш класс команда расширяет ContainerAwareCommand вы можете получить локаль от конфигурации, используя $this->getContainer()->getParameter('locale') (я предполагаю, что вы локаль определяется как параметр в parameters.yml

Теперь «не так очевидно, часть»:. Сначала вы должны проверить, какие локали системы поддерживает на Linux сервере вы можете проверить, используя следующую команду в консоли:.

locale -a 

Она должна возвращать что-то похожее на:

C 
en_US.utf8 
pl_PL.utf8 
POSIX 

Вы можете использовать только локали, указанные в этой команде. Если вы используете, например, pl_PL без части .utf8, то, вероятно, это не сработает.

Смежные вопросы