V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
helloiac
V2EX  ›  问与答

能审计 PHP 程序 SQL 执行情况的包

  •  
  •   helloiac · 2018-06-24 19:56:45 +08:00 · 1346 次点击
    这是一个创建于 2334 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不知标题表达是否到位,就是想问有没有现成的包可以提供这样的功能:记录下从接收请求到做出响应的过程中,所有被执行的 SQL 语句以及执行时间等情况,类似 WordPress 中常见的。WordPrss 是通过钩子实现的,没有钩子机制可能做到这个吗?

    我对 PHP 不熟,写的程序没有用框架,框架中估计会有这样的功能设计,不知有无独立的包可以灵活引入使用,并实现这样的功能?

    第 1 条附言  ·  2018-06-25 15:09:55 +08:00
    Wordpress 用 query monitor 插件后的是这样的,如果有类似的方便实用的最好了。

    顶部工具条:
    ![20180625150820.png]( https://i.loli.net/2018/06/25/5b309514f076d.png)

    查询的情况:
    ![20180625150615.png]( https://i.loli.net/2018/06/25/5b3094986deb3.png)
    8 条回复    2018-06-25 22:31:48 +08:00
    feiyuanqiu
        1
    feiyuanqiu  
       2018-06-24 20:01:21 +08:00
    helloiac
        2
    helloiac  
    OP
       2018-06-24 20:22:05 +08:00
    @feiyuanqiu 谢谢!这个够用了。
    changwei
        3
    changwei  
       2018-06-24 20:49:24 +08:00 via Android
    直接用 general_log 最好
    zjsxwc
        4
    zjsxwc  
       2018-06-25 10:02:23 +08:00
    主流的 orm 都有吧,我用 doctrine 可以
    helloiac
        5
    helloiac  
    OP
       2018-06-25 15:11:06 +08:00
    @changwei 谢谢!我想有个能便捷地在页面查看,从而方便跟踪、调试的工具,general_log 这个看了下有点不方便,要切换窗口,且不容易界定日志行归属的执行页面。应该也不容易集成到 PHP 程序中吧?

    附言里贴了个图片,不能显示,放这里辅助说明一下。

    ===

    Wordpress 用 query monitor 插件后的是这样的,如果有类似的方便实用的最好了。

    顶部工具条:
    ![20180625150820.png]( https://i.loli.net/2018/06/25/5b309514f076d.png)

    查询的情况:
    ![20180625150615.png]( https://i.loli.net/2018/06/25/5b3094986deb3.png)
    helloiac
        6
    helloiac  
    OP
       2018-06-25 15:13:05 +08:00
    @zjsxwc 是的,我想知道有没有可以方便集成到未用框架的项目中的。
    zjsxwc
        7
    zjsxwc  
       2018-06-25 16:22:14 +08:00
    @helloiac

    看了下,doctrine 的 dbal 层,提供了 logger ( Doctrine\DBAL\Logging\DebugStack ),在配置 dbal 后把这个 logger 提供给 doctrine,然后在你页面结束时,通过这个 logger 对象的 queries 属性获取调用的 sql 记录等


    参考:
    http://srcmvn.com/blog/2011/11/10/doctrine-dbal-query-logging-with-monolog-in-silex
    helloiac
        8
    helloiac  
    OP
       2018-06-25 22:31:48 +08:00
    @changwei 配置 clockwork 有些麻烦,还没搞定,这个 general_log 实用,看似麻烦些,但仔细看日志已经能发现很多需要改进的地方了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5699 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 03:28 · PVG 11:28 · LAX 19:28 · JFK 22:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.