MediaWiki REL1_31
DumpFileOutput.php
Go to the documentation of this file.
1<?php
30 protected $handle = false, $filename;
31
35 function __construct( $file ) {
36 $this->handle = fopen( $file, "wt" );
37 $this->filename = $file;
38 }
39
43 function writeCloseStream( $string ) {
44 parent::writeCloseStream( $string );
45 if ( $this->handle ) {
46 fclose( $this->handle );
47 $this->handle = false;
48 }
49 }
50
54 function write( $string ) {
55 fputs( $this->handle, $string );
56 }
57
61 function closeRenameAndReopen( $newname ) {
62 $this->closeAndRename( $newname, true );
63 }
64
69 function renameOrException( $newname ) {
70 if ( !rename( $this->filename, $newname ) ) {
71 throw new MWException( __METHOD__ . ": rename of file {$this->filename} to $newname failed\n" );
72 }
73 }
74
80 function checkRenameArgCount( $newname ) {
81 if ( is_array( $newname ) ) {
82 if ( count( $newname ) > 1 ) {
83 throw new MWException( __METHOD__ . ": passed multiple arguments for rename of single file\n" );
84 } else {
85 $newname = $newname[0];
86 }
87 }
88 return $newname;
89 }
90
95 function closeAndRename( $newname, $open = false ) {
96 $newname = $this->checkRenameArgCount( $newname );
97 if ( $newname ) {
98 if ( $this->handle ) {
99 fclose( $this->handle );
100 $this->handle = false;
101 }
102 $this->renameOrException( $newname );
103 if ( $open ) {
104 $this->handle = fopen( $this->filename, "wt" );
105 }
106 }
107 }
108
112 function getFilenames() {
113 return $this->filename;
114 }
115}
checkRenameArgCount( $newname)
writeCloseStream( $string)
closeRenameAndReopen( $newname)
renameOrException( $newname)
closeAndRename( $newname, $open=false)
MediaWiki exception.