*
* @ingroup Profiler
*/
-class ProfilerSimpleText extends Profiler {
+class ProfilerSimpleText extends ProfilerStandard {
public $visible = false; /* Show as <PRE> or <!-- ? */
- static private $out;
public function __construct( $profileConfig ) {
if ( isset( $profileConfig['visible'] ) && $profileConfig['visible'] ) {
parent::__construct( $profileConfig );
}
- protected function collateOnly() {
- return true;
- }
-
public function logData() {
+ $out = '';
if ( $this->mTemplated ) {
$this->close();
$totalReal = isset( $this->mCollated['-total'] )
? $this->mCollated['-total']['real']
: 0; // profiling mismatch error?
- uasort( $this->mCollated, array( 'self', 'sort' ) );
- array_walk( $this->mCollated, array( 'self', 'format' ), $totalReal );
+
+ uasort( $this->mCollated, function( $a, $b ) {
+ // sort descending by time elapsed
+ return $a['real'] < $b['real'];
+ } );
+
+ array_walk( $this->mCollated,
+ function( $item, $key ) use ( &$out, $totalReal ) {
+ $perc = $totalReal ? $item['real'] / $totalReal * 100 : 0;
+ $out .= sprintf( "%6.2f%% %3.6f %6d - %s\n",
+ $perc, $item['real'], $item['count'], $key );
+ }
+ );
+
+ $contentType = $this->getContentType();
if ( PHP_SAPI === 'cli' ) {
- print "<!--\n" . self::$out . "\n-->\n";
- } elseif ( $this->getContentType() === 'text/html' ) {
+ print "<!--\n{$out}\n-->\n";
+ } elseif ( $contentType === 'text/html' ) {
if ( $this->visible ) {
- print '<pre>' . self::$out . '</pre>';
+ print "<pre>{$out}</pre>";
} else {
- print "<!--\n" . self::$out . "\n-->\n";
+ print "<!--\n{$out}\n-->\n";
}
- } elseif ( $this->getContentType() === 'text/javascript' ) {
- print "\n/*\n" . self::$out . "*/\n";
- } elseif ( $this->getContentType() === 'text/css' ) {
- print "\n/*\n" . self::$out . "*/\n";
+ } elseif ( $contentType === 'text/javascript' ) {
+ print "\n/*\n${$out}*/\n";
+ } elseif ( $contentType === 'text/css' ) {
+ print "\n/*\n{$out}*/\n";
}
}
}
-
- static function sort( $a, $b ) {
- return $a['real'] < $b['real']; /* sort descending by time elapsed */
- }
-
- static function format( $item, $key, $totalReal ) {
- $perc = $totalReal ? $item['real'] / $totalReal * 100 : 0;
- self::$out .= sprintf( "%6.2f%% %3.6f %6d - %s\n",
- $perc, $item['real'], $item['count'], $key );
- }
}