Пример #1
0
    /**
    * Trace helper function for development purposes
    *
    * @access public
    * @static
    * @param    string    $text    Helper text
    * @param    string    $line    Helper line
    * @param    string    $file    Helper file
    * @return echoes result to screen
    */
    function trace($text = null, $line = null, $file = null, $method = null, $escape_html_entities = true)
    {
        static $counter = 0;
        if(AK_PRODUCTION_MODE){
            return;
        }
        $html_entities_function = $escape_html_entities ? 'htmlentities' : 'trim';
        list($default_file, $default_line, $default_method) = Ak::getLastFileAndLineAndMethod();
        $line = empty($line) ? $default_line : $line;
        $file = empty($file) ? $default_file : $file;
        $method = empty($method) ? $default_method : $method;

        if(AK_CLI){
            $text = Ak::dump($text, 'print_r');
        }elseif (!empty($text) && !is_scalar($text)){
            $rand = Ak::randomString();
            $formatted = '';
            $methods = array('print_r', 'var_dump', 'var_export');
            foreach ($methods as $method){
                $pre_style = 'display:none;';
                if(defined('AK_TRACE_DUMP_METHOD')){
                    if(AK_TRACE_DUMP_METHOD == $method){
                        $pre_style = '';
                    }
                }elseif ($method == 'print_r'){
                    $pre_style = '';
                }
                $element_id = $method.'_'.$rand;
                $formatted .= "<div style='margin:10px;'><a href='javascript:void(0);' onclick='e_$element_id = document.getElementById(\"$element_id\"); e_$element_id.style.display = (e_$element_id.style.display == \"none\"?\"block\":\"none\");' title='Set the constant AK_TRACE_DUMP_METHOD to your favourite default method'>$method</a><br />".
                                '<pre style="'.$pre_style.'" id="'.$element_id.'">'.$html_entities_function(Ak::dump($text, $method)).'</pre></div>';
            }
            $text = $formatted;
        }elseif (is_scalar($text)){
            $text = '<pre style="margin:10px;">'.$html_entities_function($text).'</pre>';
        }

        if(!isset($text)){
            $counter++;
            $text = '';
        }else {
            $text = AK_CLI?'---> '.$text : ($text);
        }

        echo AK_CLI?"----------------\n$file ($line):\n $text\n----------------\n":"<div style='background-color:#fff;margin:10px;color:#000;font-family:sans-serif;border:3px solid #fc0;font-size:12px;'><div style='background-color:#ffc;padding:10px;color:#000;font-family:sans-serif;'>$file <span style='font-weight:bold'>$line</span> <span style='font-style:italic'>$method</span></div>".$text."</div>\n";
    }
Пример #2
0
 function ak_trace_db_query($message, $new_line = true)
 {
     if (Ak::getStaticVar('ak_trace_db_query') === false) {
         return;
     }
     if (!AK_TRACE_DB_QUERIES_INCLUDES_DB_TYPE) {
         $message = preg_replace('/\\([a-z0-9]+\\): /', '', trim($message, "\n-"));
     }
     $details = Ak::getLastFileAndLineAndMethod(AK_TRACE_ONLY_APP_DB_QUERIES);
     if (empty($details)) {
         $details = array(null, null, null);
     }
     $message = trim(html_entity_decode(strip_tags($message)));
     if (!AK_DEBUG_OUTPUT_AS_HTML) {
         echo $message . "\n";
     } else {
         Ak::trace($message, $details[1], $details[0], $details[2]);
     }
 }
Пример #3
0
 static function getFileAndNumberTextForError($levels = 0)
 {
     list($file, $line, $method) = Ak::getLastFileAndLineAndMethod(false, $levels + 1);
     return Ak::t('In %file line %line', array('%file' => $file, '%line' => $line));
 }