У меня есть сервер, на котором я не могу изменить настройки TZ, и Phing build.xml
содержащий Tstamp
задача, которая вызывает предупреждение о часовом поясе PHP:
[PHP Error] strftime (): небезопасно полагаться на настройки часового пояса системы. Вы требуется использовать настройку date.timezone или функцию date_default_timezone_set (). Если вы использовали какой-либо из этих методов и по-прежнему получаете это предупреждение, вы, скорее всего, неправильно написали идентификатор часового пояса. На данный момент мы выбрали часовой пояс UTC, но, пожалуйста, установите date.timezone, чтобы выбрать свой часовой пояс. [строка 159 из phar: ///…/classes/phing/tasks/system/TstampTask.php]
Я хотел бы подавить эту ошибку, но так как мне не разрешено менять php.ini
Я хотел бы сделать это по-другому. Тривиальный подход заключается в предоставлении новых настроек для php
при запуске Phing:
php -d date.timezone=Europe/London phing.phar dbsetup
Тем не менее, я хотел бы сделать это без указания настройки ini. Сначала я думал, что смогу просто запустить скрипт PHP как другой <target>
, но это, по-видимому, просто установит настройки для этого скрипта в частном порядке и не повлияет на настройки ядра Phing.
Другой подход заключается в расширении Tstamp
Задайте и измените класс для этого в конфигурации Phing, но в настоящее время я использую сборку Phar по умолчанию, так что это тоже идеально!
Я искал кодовую базу Phing на Git для date_default_timezone_set()
, но, похоже, он не учитывает часовой пояс.
Возможно, есть задача Phing, которая просто вызывает ini_set()
с указанными параметрами? Или есть лучший способ добиться того, что я хочу сделать, если не запрашивать изменения в ядре Phing?
Что-нибудь отсюда https://www.phing.info/docs/guide/trunk/PhpEvalTask.html ? подобно
<php expression="date_default_timezone_set('Europe/London');" />
Других решений пока нет …