Conditions | 37 |
Paths | 4096 |
Total Lines | 211 |
Code Lines | 145 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
378 | public function dump($mode = '') |
||
379 | { |
||
380 | $ret = ''; |
||
381 | // ------------------------------------------------------------- |
||
382 | $xoops = Xoops::getInstance(); |
||
383 | /* @var $this LoggerLegacy */ |
||
384 | $ret = ''; |
||
385 | if ($mode === 'popup') { |
||
386 | $dump = $this->dump(''); |
||
387 | $content = ' |
||
388 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
||
389 | <head> |
||
390 | <meta http-equiv="content-language" content="' . XoopsLocale::getLangCode() . '" /> |
||
391 | <meta http-equiv="content-type" content="text/html; charset=' . XoopsLocale::getCharset() . '" /> |
||
392 | <title>' . $xoops->getConfig('sitename') . ' - ' . _MD_LOGGER_DEBUG . ' </title> |
||
393 | <meta name="generator" content="XOOPS" /> |
||
394 | <link rel="stylesheet" type="text/css" media="all" href="' . $xoops->getCss($xoops->getConfig('theme_set')) . '" /> |
||
395 | </head> |
||
396 | <body>' . $dump . ' |
||
397 | <div style="text-align:center;"> |
||
398 | <input class="formButton" value="' . XoopsLocale::A_CLOSE . '" type="button" onclick="javascript:window.close();" /> |
||
399 | </div> |
||
400 | '; |
||
401 | $ret .= ' |
||
402 | <script type="text/javascript"> |
||
403 | debug_window = openWithSelfMain("about:blank", "popup", 680, 450, true); |
||
404 | debug_window.document.clear(); |
||
405 | '; |
||
406 | $lines = preg_split("/(\r\n|\r|\n)( *)/", $content); |
||
407 | foreach ($lines as $line) { |
||
408 | $ret .= "\n" . 'debug_window.document.writeln("' |
||
409 | . str_replace(array('"', '</'), array('\"', '<\/'), $line) . '");'; |
||
410 | } |
||
411 | $ret .= ' |
||
412 | debug_window.focus(); |
||
413 | debug_window.document.close(); |
||
414 | </script> |
||
415 | '; |
||
416 | } |
||
417 | |||
418 | $this->addExtra( |
||
419 | _MD_LOGGER_INCLUDED_FILES, |
||
420 | sprintf(_MD_LOGGER_FILES, count(get_included_files())) |
||
421 | ); |
||
422 | |||
423 | /* |
||
424 | $included_files = get_included_files(); |
||
425 | foreach ($included_files as $filename) { |
||
426 | $this->addExtra('files',$filename); |
||
427 | } |
||
428 | |||
429 | if (function_exists('memory_get_peak_usage')) { |
||
430 | $this->addExtra('Peak memory',memory_get_peak_usage()); |
||
431 | } |
||
432 | */ |
||
433 | |||
434 | $memory = 0; |
||
435 | |||
436 | if (function_exists('memory_get_usage')) { |
||
437 | $memory = memory_get_usage() . ' bytes'; |
||
438 | } else { |
||
439 | if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { |
||
440 | $out = array(); |
||
441 | exec('tasklist /FI "PID eq ' . getmypid() . '" /FO LIST', $out); |
||
442 | if (isset($out[5])) { |
||
443 | $memory = sprintf(_MD_LOGGER_MEM_ESTIMATED, substr($out[5], strpos($out[5], ':') + 1)); |
||
444 | } |
||
445 | } |
||
446 | } |
||
447 | if ($memory) { |
||
448 | $this->addExtra(_MD_LOGGER_MEM_USAGE, $memory); |
||
449 | } |
||
450 | |||
451 | if (empty($mode)) { |
||
452 | $views = array('errors', 'deprecated', 'queries', 'blocks', 'extra'); |
||
453 | $ret .= "\n<div id=\"xo-logger-output\">\n<div id='xo-logger-tabs'>\n"; |
||
454 | $ret .= "<a href='javascript:xoSetLoggerView(\"none\")'>" . _MD_LOGGER_NONE . "</a>\n"; |
||
455 | $ret .= "<a href='javascript:xoSetLoggerView(\"\")'>" . _MD_LOGGER_ALL . "</a>\n"; |
||
456 | foreach ($views as $view) { |
||
457 | $count = count($this->$view); |
||
458 | $ret .= "<a href='javascript:xoSetLoggerView(\"$view\")'>" . constant('_MD_LOGGER_' . strtoupper($view)) . " ($count)</a>\n"; |
||
459 | } |
||
460 | $count = count($this->logstart); |
||
461 | $ret .= "<a href='javascript:xoSetLoggerView(\"timers\")'>" . _MD_LOGGER_TIMERS . "($count)</a>\n"; |
||
462 | $ret .= "</div>\n"; |
||
463 | } |
||
464 | |||
465 | if (empty($mode) || $mode === 'errors') { |
||
466 | $class = 'even'; |
||
467 | $ret .= '<table id="xo-logger-errors" class="outer"><thead><tr><th>' . _MD_LOGGER_ERRORS . '</th></tr></thead><tbody>'; |
||
468 | foreach ($this->errors as $error) { |
||
469 | $ret .= "\n<tr><td class='$class'>"; |
||
470 | $ret .= $error; |
||
471 | $ret .= "<br />\n</td></tr>"; |
||
472 | $class = ($class === 'odd') ? 'even' : 'odd'; |
||
473 | } |
||
474 | $ret .= "\n</tbody></table>\n"; |
||
475 | } |
||
476 | |||
477 | if (empty($mode) || $mode === 'deprecated') { |
||
478 | $class = 'even'; |
||
479 | $ret .= '<table id="xo-logger-deprecated" class="outer"><thead><tr><th>' . _MD_LOGGER_DEPRECATED . '</th></tr></thead><tbody>'; |
||
480 | foreach ($this->deprecated as $message) { |
||
481 | $ret .= "\n<tr><td class='$class'>"; |
||
482 | $ret .= $message; |
||
483 | $ret .= "<br />\n</td></tr>"; |
||
484 | $class = ($class === 'odd') ? 'even' : 'odd'; |
||
485 | } |
||
486 | $ret .= "\n</tbody></table>\n"; |
||
487 | } |
||
488 | |||
489 | if (empty($mode) || $mode === 'queries') { |
||
490 | $class = 'even'; |
||
491 | $ret .= '<table id="xo-logger-queries" class="outer"><thead><tr><th>' . _MD_LOGGER_QUERIES . '</th></tr></thead><tbody>'; |
||
492 | $pattern = '/\b' . preg_quote(\XoopsBaseConfig::get('db-prefix')) . '\_/i'; |
||
493 | |||
494 | foreach ($this->queries as $q) { |
||
495 | $sql = preg_replace($pattern, '', $q['sql']); |
||
496 | $query_time = isset($q['query_time']) ? sprintf('%0.6f - ', $q['query_time']) : ''; |
||
497 | |||
498 | if (isset($q['error'])) { |
||
499 | $ret .= '<tr class="' . $class . '"><td><span style="color:#ff0000;">' . $query_time . htmlentities($sql) . '<br /><strong>Error number:</strong> ' . $q['errno'] . '<br /><strong>Error message:</strong> ' . $q['error'] . '</span></td></tr>'; |
||
500 | } else { |
||
501 | $ret .= '<tr class="' . $class . '"><td>' . $query_time . htmlentities($sql) . '</td></tr>'; |
||
502 | } |
||
503 | |||
504 | $class = ($class === 'odd') ? 'even' : 'odd'; |
||
505 | } |
||
506 | $ret .= '</tbody><tfoot><tr class="foot"><td>' . _MD_LOGGER_TOTAL . ': <span style="color:#ff0000;">' . count($this->queries) . '</span></td></tr></tfoot></table>'; |
||
507 | } |
||
508 | if (empty($mode) || $mode === 'blocks') { |
||
509 | $class = 'even'; |
||
510 | $ret .= '<table id="xo-logger-blocks" class="outer"><thead><tr><th>' . _MD_LOGGER_BLOCKS . '</th></tr></thead><tbody>'; |
||
511 | foreach ($this->blocks as $b) { |
||
512 | if ($b['cached']) { |
||
513 | $ret .= '<tr><td class="' . $class . '"><strong>' . $b['name'] . ':</strong> ' . sprintf(_MD_LOGGER_CACHED, (int)($b['cachetime'])) . '</td></tr>'; |
||
514 | } else { |
||
515 | $ret .= '<tr><td class="' . $class . '"><strong>' . $b['name'] . ':</strong> ' . _MD_LOGGER_NOT_CACHED . '</td></tr>'; |
||
516 | } |
||
517 | $class = ($class === 'odd') ? 'even' : 'odd'; |
||
518 | } |
||
519 | $ret .= '</tbody><tfoot><tr class="foot"><td>' . _MD_LOGGER_TOTAL . ': <span style="color:#ff0000;">' . count($this->blocks) . '</span></td></tr></tfoot></table>'; |
||
520 | } |
||
521 | if (empty($mode) || $mode === 'extra') { |
||
522 | $class = 'even'; |
||
523 | $ret .= '<table id="xo-logger-extra" class="outer"><thead><tr><th>' . _MD_LOGGER_EXTRA . '</th></tr></thead><tbody>'; |
||
524 | foreach ($this->extra as $ex) { |
||
525 | $ret .= '<tr><td class="' . $class . '"><strong>'; |
||
526 | $ret .= htmlspecialchars($ex['name']) . ':</strong> ' . htmlspecialchars($ex['msg']); |
||
527 | $ret .= '</td></tr>'; |
||
528 | $class = ($class === 'odd') ? 'even' : 'odd'; |
||
529 | } |
||
530 | $ret .= '</tbody></table>'; |
||
531 | } |
||
532 | if (empty($mode) || $mode === 'timers') { |
||
533 | $class = 'even'; |
||
534 | $ret .= '<table id="xo-logger-timers" class="outer"><thead><tr><th>' . _MD_LOGGER_TIMERS . '</th></tr></thead><tbody>'; |
||
535 | foreach ($this->logstart as $k => $v) { |
||
536 | $ret .= '<tr><td class="' . $class . '"><strong>'; |
||
537 | $ret .= sprintf(_MD_LOGGER_TIMETOLOAD, htmlspecialchars($k) . '</strong>', '<span style="color:#ff0000;">' . sprintf("%.03f", $this->dumpTime($k)) . '</span>'); |
||
538 | $ret .= '</td></tr>'; |
||
539 | $class = ($class === 'odd') ? 'even' : 'odd'; |
||
540 | } |
||
541 | $ret .= '</tbody></table>'; |
||
542 | } |
||
543 | |||
544 | if (empty($mode)) { |
||
545 | $ret .= <<<EOT |
||
546 | </div> |
||
547 | <script type="text/javascript"> |
||
548 | function xoLogCreateCookie(name,value,days) { |
||
549 | if (days) { |
||
550 | var date = new Date(); |
||
551 | date.setTime(date.getTime()+(days*24*60*60*1000)); |
||
552 | var expires = "; expires="+date.toGMTString(); |
||
553 | } |
||
554 | else var expires = ""; |
||
555 | document.cookie = name+"="+value+expires+"; path=/"; |
||
556 | } |
||
557 | function xoLogReadCookie(name) { |
||
558 | var nameEQ = name + "="; |
||
559 | var ca = document.cookie.split(';'); |
||
560 | for(var i=0;i < ca.length;i++) { |
||
561 | var c = ca[i]; |
||
562 | while (c.charAt(0)==' ') c = c.substring(1,c.length); |
||
563 | if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); |
||
564 | } |
||
565 | return null; |
||
566 | } |
||
567 | function xoLogEraseCookie(name) { |
||
568 | createCookie(name,"",-1); |
||
569 | } |
||
570 | function xoSetLoggerView( name ) { |
||
571 | var log = document.getElementById( "xo-logger-output" ); |
||
572 | if ( !log ) return; |
||
573 | var i, elt; |
||
574 | for ( i=0; i!=log.childNodes.length; i++ ) { |
||
575 | elt = log.childNodes[i]; |
||
576 | if ( elt.tagName && elt.tagName.toLowerCase() != 'script' && elt.id != "xo-logger-tabs" ) { |
||
577 | elt.style.display = ( !name || elt.id == "xo-logger-" + name ) ? "block" : "none"; |
||
578 | } |
||
579 | } |
||
580 | xoLogCreateCookie( 'XOLOGGERVIEW', name, 1 ); |
||
581 | } |
||
582 | xoSetLoggerView( xoLogReadCookie( 'XOLOGGERVIEW' ) ); |
||
583 | </script> |
||
584 | |||
585 | EOT; |
||
586 | } |
||
587 | // ------------------------------------------------------------- |
||
588 | return $ret; |
||
589 | } |
||
769 |