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是完全不同的实体
如果尚未安装立面和/或服务提供商,请执行以下操作:
'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日志中确实看到了日志条目。我已经用你上面的例子进行了测试,但是在查看器的日志部分仍然没有条目-我是不是遗漏了什么?我需要看看你的代码,你能发布一个不起作用的例子吗?谢谢你的回答。到现在为止,我还不能正确使用,所以期待一些认真的调试!谢谢,不用担心,很高兴它能帮上忙:)我仍在和剖析器搏斗。我不能告诉他