使用@deprecated批注自动弃用PHP方法的警告

有什么可能实现助手,当调用带注释@deprecated类方法被调用时,会引发E_DEPRECATED (实际上是E_USER_DEPRECATED )错误日志?

例如代码

/**
 * @deprecated
 */
public function main()
{}

当调用方法$obj->main() ,会抛出弃用的警告。

是的,我知道我可以使用代码行trigger_error()添加警告。


简而言之:将trigger_error()放在方法的开头。

长:您需要反映该类,检索DocComment,解析它并提取@deprecated -tag。 问题在于,您必须在每次调用方法时都这样做,即使存在一个简单的方法来捕获每个调用,这也是一个巨大的开销。


如果你仍然对一个答案感兴趣:

$trace = debug_backtrace();
$trace = $trace[0];
Helper::logToFile('called deprecated method '.__ FUNCTION __.' on line '.$trace['line'].' in file '.$trace['file'], 'deprecated');

日志文件方法可能如下所示:

$text .= "n";
$file = fopen('log/deprecated', 'a+');
fputs($file, $text, strlen($text));
fclose($file);

  • 可能是自己的文件解析器可以帮助你...
  • 不赞成意味着在下一个版本中这个函数将被从代码中删除......在这种情况下,您不需要考虑E_DEPRECATED
  • 链接地址: http://www.djcxy.com/p/8297.html

    上一篇: Automatic deprecated warnings for PHP methods with @deprecated annotation

    下一篇: grep without showing path/file:line