• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wudikua
V2EX  ›  程序员

有什么工具可以分析 PHP 代码的依赖文件

  •  
  •   wudikua · Sep 3, 2014 · 4279 views
    This topic created in 4308 days ago, the information mentioned may be changed or developed.
    给一个PHP文件,怎么分析他所有代码路径涉及的文件,感觉原理类似于代码导航,就是把这个文件的所有可能的代码导航都遍历出来。
    11 replies    2014-09-05 17:21:40 +08:00
    66beta
        1
    66beta  
       Sep 3, 2014
    IDE都可以的,比如Netbeans
    你建立project的时候,它会扫描整个project内的文件,你甚至还可以添加project外部的库
    点击某个函数方法,就会打开声明它的文件
    f1384793
        2
    f1384793  
       Sep 3, 2014
    wudikua
        3
    wudikua  
    OP
       Sep 3, 2014
    @66beta 我用的PHPSTORM 生成的XML里有?
    66beta
        4
    66beta  
       Sep 3, 2014
    @wudikua
    https://netbeans.org/images_www/v7/3/features/php/php-ide_top.png
    左下角的navigator是不是你要的? 里面会列出本文件用到的方法和变量,点击就会跳到声明出,包括从外面调用的
    wudikua
        5
    wudikua  
    OP
       Sep 3, 2014
    @66beta 我是写程序,要把项目的依赖计算出来,然后公用的代码迁移到一个地方,不是在这种。
    mikej
        6
    mikej  
       Sep 3, 2014
    get_included_files() ?
    wudikua
        7
    wudikua  
    OP
       Sep 3, 2014
    @mikej 这个只能在运行时用
    shiny
        8
    shiny  
    PRO
       Sep 3, 2014 via iPhone
    有autoload,不到运行时是不知道到底加载了什么文件的。
    RemRain
        9
    RemRain  
       Sep 3, 2014
    无解,举个栗子:
    $redis = new Redis();
    require($redis->get('file_name'));
    nina
        10
    nina  
       Sep 3, 2014
    我能在这招个资深的phper吗?求解
    haisee
        11
    haisee  
       Sep 5, 2014
    class My_Exception extends Exception
    {
    public function __construct($message, $code = null) {
    parent::__construct($message, intval($code));
    echo $this->getTraceAsString();
    }
    }
    在你需要的地方调用一下threw new My_Exception('balabala...')
    然后你可以得到一个php的执行路径,从入口到中断的地方。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2410 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 15:55 · PVG 23:55 · LAX 08:55 · JFK 11:55
    ♥ Do have faith in what you're doing.