filebackend: Clean up TempFSFile and fix IDEA errors

Change-Id: I4e25e3bf906fa3a918f4462fac1a6be5e85696aa
This commit is contained in:
Aaron Schulz 2016-02-25 19:17:46 -08:00 committed by Timo Tijhof
parent 5353260265
commit b3c80a0ff5

View file

@ -31,9 +31,6 @@ class TempFSFile extends FSFile {
/** @var bool Garbage collect the temp file */
protected $canDelete = false;
/** @var array Active temp files to purge on shutdown */
protected static $instances = [];
/** @var array Map of (path => 1) for paths to delete on shutdown */
protected static $pathsCollect = null;
@ -55,25 +52,25 @@ class TempFSFile extends FSFile {
* @return TempFSFile|null
*/
public static function factory( $prefix, $extension = '' ) {
$base = wfTempDir() . '/' . $prefix . wfRandomString( 12 );
$ext = ( $extension != '' ) ? ".{$extension}" : "";
for ( $attempt = 1; true; $attempt++ ) {
$path = "{$base}-{$attempt}{$ext}";
$ext = ( $extension != '' ) ? ".{$extension}" : '';
$attempts = 5;
while ( $attempts-- ) {
$path = wfTempDir() . '/' . $prefix . wfRandomString( 12 ) . $ext;
MediaWiki\suppressWarnings();
$newFileHandle = fopen( $path, 'x' );
MediaWiki\restoreWarnings();
if ( $newFileHandle ) {
fclose( $newFileHandle );
break; // got it
}
if ( $attempt >= 5 ) {
return null; // give up
$tmpFile = new self( $path );
$tmpFile->autocollect();
// Safely instantiated, end loop.
return $tmpFile;
}
}
$tmpFile = new self( $path );
$tmpFile->autocollect(); // safely instantiated
return $tmpFile;
// Give up
return null;
}
/**