MediaWiki
master
TempFSFileFactory.php
Go to the documentation of this file.
1
<?php
2
3
namespace
Wikimedia\FileBackend\FSFile
;
4
8
class
TempFSFileFactory
{
10
private
$tmpDirectory;
11
16
public
function
__construct
( $tmpDirectory =
null
) {
17
$this->tmpDirectory = $tmpDirectory;
18
}
19
28
public
function
newTempFSFile
( $prefix, $extension =
''
) {
29
$ext = ( $extension !=
''
) ?
".{$extension}"
:
''
;
30
$tmpDirectory = $this->tmpDirectory;
31
if
( !is_string( $tmpDirectory ) ) {
32
$tmpDirectory =
TempFSFile::getUsableTempDirectory
();
33
}
34
35
$attempts = 5;
36
while
( $attempts-- ) {
37
$hex = sprintf(
'%06x%06x'
, mt_rand( 0, 0xffffff ), mt_rand( 0, 0xffffff ) );
38
$path
=
"$tmpDirectory/$prefix$hex$ext"
;
39
// phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
40
$newFileHandle = @fopen(
$path
,
'x'
);
41
if
( $newFileHandle ) {
42
fclose( $newFileHandle );
43
$tmpFile =
new
TempFSFile
(
$path
);
44
$tmpFile->autocollect();
45
// Safely instantiated, end loop.
46
return
$tmpFile;
47
}
48
}
49
50
// Give up
51
return
null
;
// @codeCoverageIgnore
52
}
53
}
54
56
class_alias( TempFSFileFactory::class,
'MediaWiki\FileBackend\FSFile\TempFSFileFactory'
);
$path
$path
Definition
NoLocalSettings.php:14
Wikimedia\FileBackend\FSFile\TempFSFileFactory
Definition
TempFSFileFactory.php:8
Wikimedia\FileBackend\FSFile\TempFSFileFactory\__construct
__construct( $tmpDirectory=null)
Definition
TempFSFileFactory.php:16
Wikimedia\FileBackend\FSFile\TempFSFileFactory\newTempFSFile
newTempFSFile( $prefix, $extension='')
Make a new temporary file on the file system.
Definition
TempFSFileFactory.php:28
Wikimedia\FileBackend\FSFile\TempFSFile
This class is used to hold the location and do limited manipulation of files stored temporarily (this...
Definition
TempFSFile.php:22
Wikimedia\FileBackend\FSFile\TempFSFile\getUsableTempDirectory
static getUsableTempDirectory()
Definition
TempFSFile.php:75
Wikimedia\FileBackend\FSFile
Definition
FSFile.php:10
includes
libs
FileBackend
FSFile
TempFSFileFactory.php
Generated on Sun Feb 15 2026 13:25:21 for MediaWiki by
1.10.0