본문 바로가기
Programming/CodeIgniter

codeIgniter용 디버그 헬퍼.

by 신규하 2009. 9. 27.
예전 포스팅 중에서 codeigniter(이하 ci)에서 firephp 사용하기에 대한 포스팅이 있습니다.
그런데 사용할때 마다, $this->firephp->log('내용') 이런식으로 길게 사용하는게 귀찮아서 helper를 제작 했습니다.
아.. 그리고 뒤에 있는 내용들은 일반적으로 사용할 수 있는 debug도 추가해 봤습니다.

먼저 firephp를 설치 하셔야 합니다.
사용법 :
  • application/helper 디렉토리에 debug_helper.php를 복사해 줍니다.
  • application/autoload.php에 helper로딩에 debug를 추가해 줍니다.

파일명 : debug_helper.php
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
 * firephp
 *
 * @param    $var array, string, integer
 * @type    string : "log", "warn", "error"
 */
function firephp($value, $type = 'log')
{
    if( $type != 'log' AND $type != 'warn' AND $type != 'error')
    {
        $type = 'warn';
    }
    $CI =& get_instance();
    $CI->firephp->{$type}($value);
}

//------------------------------------------------------------------------------

/**
 * firephp
 *
 * @type    string : log, warn, error
 */
function firephp_last_query($type = 'log')
{
    if( $type != 'log' AND $type != 'warn' AND $type != 'error')
    {
        $type = 'warn';
    }
    $CI =& get_instance();
    $CI->firephp->{$type}($CI->db->last_query());
}

//------------------------------------------------------------------------------

/**
 * Outputs the query result
 *
 * @type    string : log, warn, error
 */
function firephp_session($type = 'log')
{
    if( $type != 'log' AND $type != 'warn' AND $type != 'error')
    {
        $type = 'warn';
    }
    $CI =& get_instance();
    $CI->firephp->{$type}($CI->session->all_userdata());
}

//------------------------------------------------------------------------------
/**
 * Outputs an array or variable
 *
 * @param    $var array, string, integer
 * @return    string
 */
function debug_var($var = '')
{
    echo _before();
    if (is_array($var))
    {
        print_r($var);
    }
    else
    {
        echo $var;
    }
    echo _after();
}

//------------------------------------------------------------------------------

/**
 * Outputs the last query
 *
 * @return    string
 */
function debug_last_query()
{
    $CI =& get_instance();
    echo _before();
    echo $CI->db->last_query();
    echo _after();
}

//------------------------------------------------------------------------------

/**
 * Outputs the query result
 *
 * @param    $query object
 * @return    string
 */
function debug_query_result($query = '')
{
    echo _before();
    print_r($query->result_array());
    echo _after();
}

//------------------------------------------------------------------------------

/**
 * Outputs all session data
 *
 * @return    string
 */
function debug_session()
{
    $CI =& get_instance();
    echo _before();
    print_r($CI->session->all_userdata());
    echo _after();
}

//------------------------------------------------------------------------------

/**
 * Logs a message or var
 *
 * @param    $message array, string, integer
 * @return    string
 */
function debug_log($message = '')
{
    is_array($message) ? log_message('debug', print_r($message)) : log_message('debug', $message);
}

//------------------------------------------------------------------------------

/**
 * _before
 *
 * @return    string
 */
function _before()
{
    $before = '<div style="padding:10px 20px 10px 20px; background-color:#fbe6f2; border:1px solid #d893a1; color: #000; font-size: 12px;>'."\n";
    $before .= '<h5 style="font-family:verdana,sans-serif; font-weight:bold; font-size:18px;">Debug Helper Output</h5>'."\n";
    $before .= '<pre>'."\n";
    return $before;
}

//------------------------------------------------------------------------------

/**
 * _after
 *
 * @return    string
 */

function _after()
{
    $after = '</pre>'."\n";
    $after .= '</div>'."\n";
    return $after;
}


다운로드 :


사용법은...
간단한게 소스에서

firephp('내용');
등등.. 함수 내용대로 ^^;

참 쉽죠?

뒷 부분 원본 : http://codeigniter.com/forums/viewthread/130302/#When:06:42:58Z


댓글