我想使用CI Profiler作为审核应用的工具。但是,显然在这种情况下,我不希望输出显示在页面上,而是记录到数据库。
我以为我可以挂钩到探查器中获取相关细节(查询,uri_string等)并将其发送到db中的表。
我可以扩展探查器类以将数据发送到数据库,但这并不会消除屏幕输出。我希望能够不时地正常使用分析器,因此不希望重写输出类。
任何想法都赞赏。
我最终做的是创建一个库和copylasagna Profiler.php进行修改,以便根据需要进行修改。
答案 0 :(得分:7)
试试这个。将MY_Profiler.php添加到 libraries / 目录(我假设您在2.0+分支;如果没有,请知道):
<?php
class MY_Profiler extends CI_Profiler {
public function run()
{
$output = parent::run();
// log output here, and optionally return it if you do want it to display
}
}
编辑:并自动为每个控制器启用探查器(添加到core / MY_Controller.php):
<?php
class MY_Controller extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->output->enable_profiler(TRUE);
}
}
// but each controller will have to extend MY_Controller, not CI_Controller...
class Somecontroller extends MY_Controller { //... }
答案 1 :(得分:-1)
您可以破解core/Output
将Profiler
类输出保存到数据库,或在屏幕上显示,或两者都显示。只需添加另一个类似于$this->enable_profiler
;
您可能还想查看xdebug。它允许您分析应用程序,将配置文件写入磁盘,并在以后使用工具进行检查。