]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blob - includes/profiler/output/ProfilerOutputDump.php
MediaWiki 1.30.2
[autoinstalls/mediawiki.git] / includes / profiler / output / ProfilerOutputDump.php
1 <?php
2 /**
3  * Profiler dumping output in xhprof dump file
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  * http://www.gnu.org/copyleft/gpl.html
19  *
20  * @file
21  * @ingroup Profiler
22  */
23
24 /**
25  * Profiler dumping output in xhprof dump file
26  * @ingroup Profiler
27  *
28  * @since 1.25
29  */
30 class ProfilerOutputDump extends ProfilerOutput {
31
32         protected $suffix = ".xhprof";
33
34         /**
35          * Can this output type be used?
36          *
37          * @return bool
38          */
39         public function canUse() {
40                 if ( empty( $this->params['outputDir'] ) ) {
41                         return false;
42                 }
43                 return true;
44         }
45
46         public function log( array $stats ) {
47                 $data = $this->collector->getRawData();
48                 $filename = sprintf( "%s/%s.%s%s",
49                         $this->params['outputDir'],
50                         uniqid(),
51                         $this->collector->getProfileID(),
52                         $this->suffix );
53                 file_put_contents( $filename, serialize( $data ) );
54         }
55 }