如何在PHP中弃用函数?
2022-08-30 12:20:20
在我工作的团队中,我们有一个旧的代码库,在代码中使用PHP的ibase_*函数来与数据库进行通信。我们为它创建了一个包装器,除了调用原始函数之外,它还会做其他事情,我在整个代码中进行了批量搜索替换,以确保使用包装器。
现在,我们如何防止将来使用ibase_*函数?
最好是,我希望仍然提供它们,但要让它在使用时抛出通知或警告。
纯 PHP 中的解决方案(不需要编译 PHP 的自定义版本)是首选。
在我工作的团队中,我们有一个旧的代码库,在代码中使用PHP的ibase_*函数来与数据库进行通信。我们为它创建了一个包装器,除了调用原始函数之外,它还会做其他事情,我在整个代码中进行了批量搜索替换,以确保使用包装器。
现在,我们如何防止将来使用ibase_*函数?
最好是,我希望仍然提供它们,但要让它在使用时抛出通知或警告。
纯 PHP 中的解决方案(不需要编译 PHP 的自定义版本)是首选。
function my_deprecated_function() {
trigger_error("Deprecated function called.", E_USER_NOTICE);
// do stuff.
}
一般来说,您可以将方法标记为已弃用,以便向用户提供有关在将来版本中不起作用的代码的警告。我认为最好的方法是使用trigger_error和一些phpdoc。
/**
* @deprecated
*
* @return $this
*/
public function oldMethod()
{
trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);
return $this;
}
phpdoc很重要,因为许多像PHPStorm这样的IDE可以识别它,并在您尝试使用它时删除方法名称,因此您注意到在实际运行代码之前已弃用。@deprecated
它看起来或多或少是这样的:
除了phpdoc之外,你可以通过在运行时触发正确的错误来确保用户得到警告。只需确保使用正确的常量(即 )。E_USER_DEPRECATED
E_DEPRECATED
相反,PHP在内部使用,因此您不应该使用它。更多信息请点击这里。