| 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 |