zoukankan      html  css  js  c++  java
  • PHP大对象调试利器

    PHP现代的框架,比如Yii、Laravel、或者是Swoole 的企业级框架Hyperf,都不约而同的使用了依赖注入、控制反转的设计模式。 这对于开发来讲说,如何注入对象和获取对象,变成了黑盒。DI容器装载了APP应用的所有的服务,当我们去调试代码时,通常会被海量的打印信息所吓到。面对冗余的信息,实际上大多数时候,我们已经准备放弃了去一探究竟的想法。

    工欲善其事必先利其器,下面我们利用Symfonyvar_dump组件来满足简明扼要的查看调试对象的需求。

    1、引入 VarDumper 组件

    composer require symfony/var-dumper
    

    2、装饰VarDumper

    # 要放在 require BASE_PATH . '/vendor/autoload.php'; 之后
    VarDumper::setHandler(function ($var) {
        $cloner = new VarCloner();
        //$cloner->setMaxItems(2);  // 设置一个嵌套级别(past the first nesting level)被克隆的元素的最大值
        $cloner->setMinDepth(1);  // 在深度上的剥离限制。
        $cloner->setMaxItems(5);
        $dumper = 'cli' === PHP_SAPI ? new CliDumper() : new HtmlDumper();
        $dumper->dump($cloner->cloneVar($var));
    });
    

    具体的setMaxItems展示迭代元素数量 和 setMinDepth 深度信息。可以根据具体的需要调整。

    参考文档: VarDumper组件 VarDumper组件高级用法

    用法:在任何需要打印的地方调用如下函数

    dump($obj);
    

    3、比较效果 var_dumpdump 的区别

    dump 截图,展示结果速度非常快。只展示了简明扼要的结构信息。帮助快速了解对象信息。

    dump结果截图

    var_dump 截图,展示结果速度非常慢,花费了快一分钟。展示了对象内的所有信息,根本找不到自己想要寻找的信息。

    var_dump 截图

  • 相关阅读:
    hive创建ES外部表过程中的问题
    Hive 与 ElasticSearch 的数据类型对照
    ambari启动hive服务失败
    calcite 1.22新特性
    自动化打包工具gulp
    js中数组的用法
    JavaScript的基础语法
    node.js初体验
    函数的执行过程和闭包
    Ajax -Asynchronous Javascript And XML(异步 JavaScript 和 XML)
  • 原文地址:https://www.cnblogs.com/roverliang/p/13492882.html
Copyright © 2011-2022 走看看