V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
impig33
V2EX  ›  PHP

怎样快速分析 PHP 代码的业务逻辑?

  •  
  •   impig33 · 2020-05-23 09:35:49 +08:00 · 3381 次点击
    这是一个创建于 1647 天前的主题,其中的信息可能已经有所发展或是发生改变。

    当我拿到一份代码要做二开,比如 php,由于代码比较多,怎样快速的分析主要执行过程。

    当然 debug 或 XHProf 可以起到调试的作用,但是执行过程要么太琐碎,要么依赖执行环境。

    有没有什么什么工具,可以直接导入一个 project,即可以基于代码生成一个像思维导图这样的架构出来?

    谢谢你的智慧!

    12 条回复    2020-09-16 09:56:52 +08:00
    DamonLin
        1
    DamonLin  
       2020-05-23 10:07:57 +08:00
    在本地执行,打断点。反正我刚入职是这样
    chengxiao
        2
    chengxiao  
       2020-05-23 10:24:01 +08:00
    看业务逻辑直接找路由啊,这个最直接 前后端通用
    Mitt
        3
    Mitt  
       2020-05-23 10:59:44 +08:00
    可以借助性能探测工具 比如 xhgui,可以实现你想要的结果,查看它从 main 到结束的过程(和耗时)
    Mitt
        4
    Mitt  
       2020-05-23 11:01:42 +08:00
    @Mitt #3 当然了 这个前提是只能查看一条路径,没办法像你说的一样去直接剖析所有结构,主要是由于入口的问题,PHP 大多都是动态的,没办法靠代码去猜你会执行什么,只能靠执行一遍来获取你执行过的路径
    BigPig666
        5
    BigPig666  
       2020-05-23 11:41:38 +08:00
    xdebug 把生命周期摸清楚就行了
    CODEWEA
        6
    CODEWEA  
       2020-05-23 15:11:22 +08:00   ❤️ 2
    对业务建立初步认识:把自己当成用户,尽可能的去体验所有功能,将业务的运行逻辑在自己的脑海中建立大概的印象
    对单个业务点精准剖析:从不同渠道,了解业务,以及业务所关联的其他业务
    对业务的代码进行逐步调试:先了解框架的运行逻辑,以及代码的执行顺序;自上而下,从大到小去用调试代码的方式去了解业务。
    yc8332
        7
    yc8332  
       2020-05-23 15:34:14 +08:00
    当然是看功能了。先看功能,然后了解项目的路由方式,找到控制器。然后你想干嘛就干嘛了。
    shellic
        8
    shellic  
       2020-05-23 18:47:02 +08:00 via Android
    我觉着 6 楼说的就不错
    impig33
        9
    impig33  
    OP
       2020-06-04 15:32:09 +08:00
    @CODEWEA

    说的不错,不过,不是啥都有业务逻辑说明的。

    比如做 ecshop 二开,经常是路由+判断看着看着迷路了,哈哈
    impig33
        10
    impig33  
    OP
       2020-06-04 15:33:27 +08:00
    @chengxiao

    有道理,也确实是这么干的,只是进入到具体功能后,由于代码调用来调用去,还是会迷路
    impig33
        11
    impig33  
    OP
       2020-06-04 15:35:27 +08:00
    v2ex 的交流氛围比思否和知乎好的多,谢谢各位大神
    impig33
        12
    impig33  
    OP
       2020-09-16 09:56:52 +08:00
    可以继续讨论吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1595 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:57 · PVG 00:57 · LAX 08:57 · JFK 11:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.