如何在PHP中弃用函数?

2022-08-30 12:20:20

在我工作的团队中,我们有一个旧的代码库,在代码中使用PHP的ibase_*函数来与数据库进行通信。我们为它创建了一个包装器,除了调用原始函数之外,它还会做其他事情,我在整个代码中进行了批量搜索替换,以确保使用包装器。

现在,我们如何防止将来使用ibase_*函数?

最好是,我希望仍然提供它们,但要让它在使用时抛出通知或警告。

纯 PHP 中的解决方案(不需要编译 PHP 的自定义版本)是首选。


答案 1

trigger_error()

function my_deprecated_function() {
    trigger_error("Deprecated function called.", E_USER_NOTICE);
    // do stuff.
}

答案 2

一般来说,您可以将方法标记为已弃用,以便向用户提供有关在将来版本中不起作用的代码的警告。我认为最好的方法是使用trigger_error和一些phpdoc

/**
 * @deprecated
 *
 * @return $this
 */
public function oldMethod()
{
    trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);

    return $this;
}

phpdoc很重要,因为许多像PHPStorm这样的IDE可以识别它,并在您尝试使用它时删除方法名称,因此您注意到在实际运行代码之前已弃用。@deprecated

它看起来或多或少是这样的:

jetbrains deprecated strikethrough

除了phpdoc之外,你可以通过在运行时触发正确的错误来确保用户得到警告。只需确保使用正确的常量(即 )。E_USER_DEPRECATED

E_DEPRECATED相反,PHP在内部使用,因此您不应该使用它。更多信息请点击这里


推荐