Debugging 如何正确使用Laravel 4分析器

Debugging 如何正确使用Laravel 4分析器,debugging,laravel,profiler,Debugging,Laravel,Profiler,我正在努力提高网站中某些代码的性能,并发现了以下探查器: 我遵循了网站上的指导,并在其中一个网站控制器中包括以下内容: public function getTest() { $logger = new Profiler\Logger\Logger; $profiler = new Profiler\Profiler($logger); $profiler->startTimer('testLogging'); $data = Article::

我正在努力提高网站中某些代码的性能,并发现了以下探查器:

我遵循了网站上的指导,并在其中一个网站控制器中包括以下内容:

 public function getTest() {

    $logger = new Profiler\Logger\Logger;
    $profiler = new Profiler\Profiler($logger);
    $profiler->startTimer('testLogging');




    $data = Article::select(array(
        'articles.id',
        'articles.article_date',
        'articles.image_link',
        'articles.headline',
        'articles.category'
    ))  ->get()
        ->toArray();
    var_dump($data);

    $profiler->endTimer('testLogging');
    Log::info('Hello World!');
    echo $profiler;
在浏览器中,我得到了预期的结果,可以看到底部的轮廓栏

我有一个问题:在这个基本测试中,当点击探查器栏时,它不会保持打开状态,因此我无法查看日志等。我不确定为什么或者如何进行修复。窗格将立即打开,然后再次关闭

如果我删除了最后的回显,它将正常工作

我似乎无法在工具栏中看到计时器“testLogging”

我是否误解了这里的一个概念

如何在代码中使用特定于时间的函数并显示结果

感谢

在Laravel 4中正确使用探查器(loic sharma/profiler),例如,它不需要您创建对象的实例

$logger = new Profiler\Logger\Logger;
$profiler = new Profiler\Profiler($logger);
Laravel有这些漂亮的东西叫做Facades(),探查器实现了它们,因此您可以像这样调用探查器和日志:

public function getTest() {

    Profiler::startTimer('testLogging');

    $data = Article::select(array(
        'articles.id',
        'articles.article_date',
        'articles.image_link',
        'articles.headline',
        'articles.category'
    ))  ->get()
        ->toArray();
    var_dump($data);

    Profiler::endTimer('testLogging');
    Log::info('Hello World!');
}
这不需要您回显$profiler,所有输出将自动显示在浏览器的探查器栏中

请注意,
在探查器之后,这通常意味着您正在使用facade,您必须了解facade和$Profiler是完全不同的实体

如果尚未安装立面和/或服务提供商,请执行以下操作:

  • 首先,您必须使用composer安装软件包,确保 将composer update添加到中的composer.json后,已运行composer update “需要”-您已经这样做了
  • 下一步将
    'Profiler\ProfilerServiceProvider',
    添加到服务列表中 app/config/app.php中的提供者
  • 接下来将
    'Profiler'=>'Profiler\Facades\Profiler',
    添加到 app/config/app.php中的类别名
  • 然后在控制台中运行
    php-artisan-config:publish
    loic sharma/档案器
  • 完成后,请确认上述修改后的代码应能完美运行

    为了澄清错误,您使用
    newprofiler\Logger\Logger创建了一个新的探查器实例如果您已经设置了立面,则当您
    echo$profiler时,浏览器中已经显示(回显)探查器栏
    您的浏览器中现在有两个探查器,导致打开-关闭问题,当您没有
    echo$profiler
    时,仍会显示该条,因为它不是您创建的,因此无法正确显示输出

    如果仍要使用自己的探查器实例:

  • 从服务列表中删除
    'Profiler\ProfilerServiceProvider',
    app/config/app.php中的提供者
  • 从文件列表中删除
    'Profiler'=>'Profiler\Facades\Profiler',
    app/config/app.php中的类别名
  • 然后在控制台中运行
    php artisan dump autoload
  • 那么这就行了:

    public function getTest() {
    
        $logger = new Profiler\Logger\Logger;
        $profiler = new Profiler\Profiler($logger);
        $profiler->startTimer('testLogging');
    
        $data = Article::select(array(
            'articles.id',
            'articles.article_date',
            'articles.image_link',
            'articles.headline',
            'articles.category'
        ))  ->get()
            ->toArray();
        $logger->debug(var_dump($data));
    
        $profiler->endTimer('testLogging');
        $logger->info('Hello World!');
        echo $profiler;
    }
    
    要在Laravel 4中正确使用探查器(loic sharma/profiler),例如,不需要创建对象的实例

    $logger = new Profiler\Logger\Logger;
    $profiler = new Profiler\Profiler($logger);
    
    Laravel有这些漂亮的东西叫做Facades(),探查器实现了它们,因此您可以像这样调用探查器和日志:

    public function getTest() {
    
        Profiler::startTimer('testLogging');
    
        $data = Article::select(array(
            'articles.id',
            'articles.article_date',
            'articles.image_link',
            'articles.headline',
            'articles.category'
        ))  ->get()
            ->toArray();
        var_dump($data);
    
        Profiler::endTimer('testLogging');
        Log::info('Hello World!');
    }
    
    这不需要您回显$profiler,所有输出将自动显示在浏览器的探查器栏中

    请注意,
    在探查器之后,这通常意味着您正在使用facade,您必须了解facade和$Profiler是完全不同的实体

    如果尚未安装立面和/或服务提供商,请执行以下操作:

  • 首先,您必须使用composer安装软件包,确保 将composer update添加到中的composer.json后,已运行composer update “需要”-您已经这样做了
  • 下一步将
    'Profiler\ProfilerServiceProvider',
    添加到服务列表中 app/config/app.php中的提供者
  • 接下来将
    'Profiler'=>'Profiler\Facades\Profiler',
    添加到 app/config/app.php中的类别名
  • 然后在控制台中运行
    php-artisan-config:publish
    loic sharma/档案器
  • 完成后,请确认上述修改后的代码应能完美运行

    为了澄清错误,您使用
    newprofiler\Logger\Logger创建了一个新的探查器实例如果您已经设置了立面,则当您
    echo$profiler时,浏览器中已经显示(回显)探查器栏
    您的浏览器中现在有两个探查器,导致打开-关闭问题,当您没有
    echo$profiler
    时,仍会显示该条,因为它不是您创建的,因此无法正确显示输出

    如果仍要使用自己的探查器实例:

  • 从服务列表中删除
    'Profiler\ProfilerServiceProvider',
    app/config/app.php中的提供者
  • 从文件列表中删除
    'Profiler'=>'Profiler\Facades\Profiler',
    app/config/app.php中的类别名
  • 然后在控制台中运行
    php artisan dump autoload
  • 那么这就行了:

    public function getTest() {
    
        $logger = new Profiler\Logger\Logger;
        $profiler = new Profiler\Profiler($logger);
        $profiler->startTimer('testLogging');
    
        $data = Article::select(array(
            'articles.id',
            'articles.article_date',
            'articles.image_link',
            'articles.headline',
            'articles.category'
        ))  ->get()
            ->toArray();
        $logger->debug(var_dump($data));
    
        $profiler->endTimer('testLogging');
        $logger->info('Hello World!');
        echo $profiler;
    }
    

    谢谢你的回答。到现在为止,我还不能正确使用,所以期待一些认真的调试!谢谢,不用担心,很高兴它能帮上忙:)我仍在和剖析器搏斗。我无法在profiler视图中看到计时器的结果,我可以;在profiler视图中看不到日志条目,但在laravel日志中确实看到了日志条目。我已经用你上面的例子进行了测试,但是在查看器的日志部分仍然没有条目-我是不是遗漏了什么?我需要看看你的代码,你能发布一个不起作用的例子吗?谢谢你的回答。到现在为止,我还不能正确使用,所以期待一些认真的调试!谢谢,不用担心,很高兴它能帮上忙:)我仍在和剖析器搏斗。我不能告诉他