使用@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
上一篇: Automatic deprecated warnings for PHP methods with @deprecated annotation