Могу ли я расширить класс CI_Profiler для отображения переменных SESSION? - PullRequest
1 голос
/ 22 апреля 2010

Если так .... есть идеи как?

Ответы [ 2 ]

5 голосов
/ 22 апреля 2010

Вас может заинтересовать этот пост о добавлении сеансов к профилировщику По сути, это работает путем создания файла MY_Profiler.php, копирования и вставки этого кода:

<code>    <?php if(!defined('BASEPATH')) exit('No direct script access allowed');
    class MY_Profiler extends CI_Profiler {
    /**
     * Adds session data to the profiler
     * Adds a table row for each item of session data with the key and value
     * Shows both CI session data and custom session data
     */
    function _compile_session() {    
        $output  = "\n\n";
        $output .= '<fieldset style="border:1px solid #009999;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">';
        $output .= "\n";
        $output .= '<legend style="color:#009999;">&nbsp;&nbsp;'.'SESSION DATA'.'&nbsp;&nbsp;</legend>';
        $output .= "\n";

        if (!is_object($this->CI->session)) {
            $output .= "<div style='color:#009999;font-weight:normal;padding:4px 0 4px 0'>".'No SESSION data exists'."</div>";
        } else {
            $output .= "\n\n<table cellpadding='4' cellspacing='1' border='0' width='100%'>\n";

            $sess = get_object_vars($this->CI->session);

            foreach ($sess['userdata'] as $key => $val) {
                if ( ! is_numeric($key)) {
                    $key = "'".$key."'";
                }

                $output .= "<tr><td width='50%' style='color:#000;background-color:#ddd;'>&#36;_SESSION[".$key."]&nbsp;&nbsp; </td><td width='50%' style='color:#009999;font-weight:normal;background-color:#ddd;'>";
                if (is_array($val)) {
                    $output .= "<pre>" . htmlspecialchars(stripslashes(print_r($val, true))) . "
"; } еще { $ output. = htmlspecialchars (полоски ($ val)); } $ output. = " \ n"; } $ output. = " \ n"; } $ output. = ""; вернуть $ output; } function run () { $ output = "
"; $ output. = $ this -> _ compile_uri_string (); $ output. = $ this -> _ compile_controller_info (); $ output. = $ this -> _ compile_memory_usage (); $ output. = $ this -> _ compile_benchmarks (); $ output. = $ this -> _ compile_get (); $ output. = $ this -> _ compile_post (); $ output. = $ this -> _ compile_queries (); $ output. = $ this -> _ compile_session (); $ output. = '
'; вернуть $ output; } }
0 голосов
/ 22 апреля 2010

Конечно, вы можете просто создать MY_profiler и добавить два метода: run () и _compile_session (). Run () - то же самое, что родительский, просто скопируйте код и добавьте _compile_session в конце, и _compile_session может иметь то же самоекод как _compile_post, просто измените $ _POST на $ _SESSION

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