代码之家  ›  专栏  ›  技术社区  ›  Scott

跟踪标记为取消预测的函数的使用情况

  •  5
  • Scott  · 技术社区  · 16 年前

    遵循此线程: How to handle functions deprecation in library? 我想找到一种方法来跟踪对不推荐使用的函数的所有调用,这样我就可以确保在删除该函数之前将它们全部替换。给出以下PHP方法

    /*
       @deprecated - just use getBar()
    */
    function getFoo(){
        return getBar();
    }
    
    function getBar(){
        return "bar";
    }
    

    我想出了以下方法,我正在寻找反馈。

    function getFoo(){
        try{
            throw new Exception("Deprecated function used"); 
        } catch(Exception $e){
             //Log the Exception with stack trace
             ....
             // return value as normal
             return getBar();
        }
    }
    
    2 回复  |  直到 16 年前
        1
  •  4
  •   Gordon Haim Evgi    16 年前

    对于phps内部弃用的函数,只需将e_strict添加到 error_reporting .

    对于userland函数要对不推荐使用的函数发出通知或警告,我建议花时间添加 @deprecated 注释也会触发 E_USER_DEPRECATED 警告,例如

    function getFoo(){
        trigger_error(__FUNCTION__ . 'is deprecated', E_USER_DEPRECATED );
        return getBar();
    }
    

    我不知道 available QA tools 可以自动检测代码是否包含不推荐使用的方法调用。不过,这是你最好的选择。

    如果您使用的是具有100%代码覆盖率的TDD,则不需要担心删除不推荐使用的方法或函数。您的自动化测试只会失败,您将知道从何处查找。

        2
  •  1
  •   Pekka    16 年前

    依赖于实际调用的弃用函数是危险的-您将拥有100%的代码覆盖率,以确保不会遗漏任何内容。慢慢地找到所有对不推荐使用的函数的调用并逐个替换它们是可以的,但还不足以完成转换。

    我想 File gt; Search in Files

    在您的IDE中是您最好的选择,因为我知道没有好的PHP重构工具。

    事后思考 也许吧 PhpXRef 是解决方案。

    推荐文章