2009-12-22 2 views
5

У меня возникли проблемы с правильной работой phpdoc. Эти документы генерируются по большей части успешно, но я получаю следующее предупреждение много раз:Предупреждения о дате даты PHPDocumentor

Warning: date(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ' America/Los_Angeles ' for 'PST/-8.0/no DST' instead in /Users/ben/bin/PhpDocumentor/phpDocumentor/Converter.inc on line 5064

и

Warning: strftime(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ' America/Los_Angeles ' for 'PST/-8.0/no DST' instead in PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php on line 370

Предупреждение Smarty я мог бы легко удалить из кода, так как это просто генерируя timestamp в верхней части шаблона в визуализированном документе. Нет, biggie. Первая ошибка в phpDocumentor, о которой я не уверен. Кажется, можно просто назначить дату для Smarty для шаблона:

$templ->assign("date",date("r",time())); 

Может быть, я мог бы просто удалить все «даты» переменные в шаблонах Smarty и этой линии.

В любом случае это предупреждение также содержится в сгенерированных документах, а на индексной странице отображается это предупреждение. Любые идеи, что здесь происходит? Я использую версию 1.4.3, и вот мои флаги/опции:

#!/usr/bin/env bash 
phpdoc \ 
    --title 'Asra Documentation' \ 
    --directory library/Asra \ 
    --target docs \ 
    --defaultcategoryname Asra \ 
    --defaultpackagename Asra \ 
    --quiet on \ 
    --output HTML:frames:phpedit 

ответ

7

Это PHP 5.3 на работе. PHP 5.3+ требует, чтобы вы установили свой часовой пояс, по указанным причинам (полагаясь на системные настройки небезопасно).

Если вы можете, просто позвоните date_default_timezone_set() в ваш файл начальной загрузки/установки/настройки. Вы также можете указать specify it in an .htaccess file, чтобы сделать его незаменимым для вашего кода:

php_value date.timezone America/Vancouver 
+1

Да, это именно то, что нужно. @Typeoneerror: Это проблема, специфичная для PHP 5.3, а не код PHP, который вы на самом деле используете. У вас может быть такая же проблема каждый раз, когда код вызывает функции PHP, которые используют настройку часового пояса по умолчанию. – kiamlaluno

+0

Вы, ребята, рок. Я просто добавил вызов date_default .. в файл phpdoc. Исправлена. – typeoneerror

+2

Это также случается с PHP 5.2, если для параметра error_reporting установлено значение E_ALL | E_STRICT – djn

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

  • Нет связанных вопросов^_^