Измените профилировщик Codeigniter для отправки вывода в БД вместо отображения на странице - PullRequest
4 голосов
/ 15 ноября 2011

Я бы хотел использовать профилировщик CI в качестве инструмента для аудита приложения. Тем не менее, очевидно, что в этом случае я не хочу, чтобы вывод отображался на странице, а был записан в базу данных.

Я думал, что смогу подключиться к профилировщику, получить соответствующие детали (query, uri_string и т. Д.) И отправить его в таблицу в БД.

Я мог бы расширить класс профилировщика для отправки данных в БД, но это не исключает вывод на экран. Я хотел бы иметь возможность использовать профилировщик также время от времени, поэтому переписывание выходного класса нежелательно.

Любые идеи приветствуются.


Я закончил тем, что создал библиотеку и скопировал туда файл Profilelas.php, чтобы изменить его по мере необходимости.

Ответы [ 2 ]

7 голосов
/ 15 ноября 2011

Попробуй это. Добавьте MY_Profiler.php в ваш каталог library / (я полагаю, вы находитесь в ветке 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 { //... }
0 голосов
/ 15 ноября 2011

Вы можете взломать core/Output, чтобы сохранить вывод класса Profiler в БД, или отобразить его на экране, или и то, и другое.Просто добавьте другой переключатель, похожий на $this->enable_profiler;

. Вы также можете взглянуть на xdebug .Он позволяет вам профилировать приложения, записывать профили на диск и позже просматривать их с помощью инструментов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...