【问题标题】:Sublimetext: how to make output into console?Sublimetext:如何将输出输出到控制台?
【发布时间】:2018-09-15 13:35:15
【问题描述】:

如何在 Sublimetext 中将输出输出到控制台?我想在控制器工作时对 Sublimetext 控制台进行某种类型的调试,有可能吗?

【问题讨论】:

    标签: php sublimetext3


    【解决方案1】:

    虽然不可能,但您确实有一些使用 PHP 进行控制台日志记录的选项。

    首先,有一个更新版本的FirePHP,它是Firefox 的扩展。正确设置和使用后,它会将调试数据发送到 Firefox 控制台。这里的问题是 Firefox 的安全性不允许安装它,除非您直接下载它。请参阅我链接到的页面的“关于此扩展程序”部分中的注释。 FirePHP我用的比较多,但是我用的是老版本的火狐,因为老版本的火狐更好。

    其次,你可以使用ChromePHP,就像FirePHP for Chrome。它是您安装的 Chrome 扩展程序。我不像 FirePHP 那样喜欢它,但如果你是 Chrome 用户,那么它可能更适合你。入门教程:Use ChromePHP to debug PHP

    最后,也许是你最好的选择,是使用Symfony's VarDumper。有一个选项可以使用 ServerDumper 转储程序,并记录到文件。我将它与 BrowserSync 结合使用。仅登录到控制台实际上更快。顺便说一句,我不确定这是否适用于 Windows。

    转储到文件看起来像这样:

    $dumpLog = ABSPATH . 'dumpLog.txt';
    file_put_contents($dumpLog, '');
    
    VarDumper::setHandler(function ($var) use ($dumpLog) {
        $cloner = new VarCloner();
        $dumper = 'cli' === PHP_SAPI 
            ? new CliDumper() 
            : new HtmlDumper();
        $dumper->setDisplayOptions([
            'maxDepth' => 12
        ]);
    
        $output = '';
    
        $dumper->dump(
            $cloner->cloneVar($var), 
            function ($line, $depth) use (&$output) {
                if ($depth >= 0) {
                    $output .= str_repeat('  ', $depth).$line."\n";
                }
            }
        );
        file_put_contents($dumpLog, $output, FILE_APPEND);
    });
    

    像这样转储到服务器:

    VarDumper::setHandler(function ($var) {
        $cloner = new VarCloner();
        $dumper = new ServerDumper('tcp://127.0.0.1:9912');     
        $dumper->dump($cloner->cloneVar($var));
    });
    

    您仍然需要学习如何使用这些调试工具之一,但希望这对您有所帮助。我认为这些对我的工作至关重要。

    【讨论】:

      猜你喜欢
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 2018-08-18
      • 2017-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多