PHPDocumentor日期问题警告

typ*_*ror 5 php phpdoc smarty

我有一些问题让phpdoc正确运行.大部分文档都是成功生成的,但我多次收到以下警告:

警告:date():依赖系统的时区设置是不安全的.您需要使用date.timezone设置或 date_default_timezone_set()函数.如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符.我们America/Los_Angeles在5064行的/Users/ben/bin/PhpDocumentor/phpDocumentor/Converter.inc中选择' '代表'PST/-8.0 /无DST'

警告:strftime():依赖系统的时区设置是不安全的.您需要使用date.timezone设置或 date_default_timezone_set()函数.如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符.我们America/Los_Angeles在第370行的PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php中选择' '代表'PST/-8.0 /无DST'

我可以轻松地从代码中删除Smarty警告,因为它只是在渲染文档中的模板顶部生成时间戳.没什么大不了的.phpDocumentor中的第一个错误我不确定.似乎只是为Smarty为模板指定了一个日期:

$templ->assign("date",date("r",time()));
Run Code Online (Sandbox Code Playgroud)

也许我可以删除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
Run Code Online (Sandbox Code Playgroud)

zom*_*bat 7

这是PHP 5.3的工作原理.由于给出的原因(依赖于系统设置是不安全的),PHP 5.3+要求您设置时区.

如果可以,只需在bootstrap/init/settings文件中调用date_default_timezone_set()即可.您还可以在.htaccess文件中指定它,使其成为代码的非问题,如下所示:

php_value date.timezone America/Vancouver
Run Code Online (Sandbox Code Playgroud)

  • 如果您的error_reporting设置为E_ALL |,那么在PHP 5.2中也会发生这种情况 E_STRICT (2认同)