X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Ffilebackend%2FFileBackendStore.php;h=4d9587ef3c8d83e0ca0faccd0fad9b3581bc5372;hb=6e9b4f0e9ce4ccd6089c18b205065ef7fa077484;hp=1432bb95e9005d503c360e4c74c0c901f2b4aaf7;hpb=d7e568139f54286e38cb966b3e2ee4e1c8af5e2c;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/filebackend/FileBackendStore.php b/includes/filebackend/FileBackendStore.php index 1432bb95e9..4d9587ef3c 100644 --- a/includes/filebackend/FileBackendStore.php +++ b/includes/filebackend/FileBackendStore.php @@ -44,7 +44,7 @@ abstract class FileBackendStore extends FileBackend { protected $expensiveCache; /** @var array Map of container names to sharding config */ - protected $shardViaHashLevels = array(); + protected $shardViaHashLevels = []; /** @var callable Method to get the MIME type of files */ protected $mimeCallback; @@ -122,7 +122,7 @@ abstract class FileBackendStore extends FileBackend { $params['dst'], $this->maxFileSizeInternal() ); } else { $status = $this->doCreateInternal( $params ); - $this->clearCache( array( $params['dst'] ) ); + $this->clearCache( [ $params['dst'] ] ); if ( !isset( $params['dstExists'] ) || $params['dstExists'] ) { $this->deleteFileCache( $params['dst'] ); // persistent cache } @@ -163,7 +163,7 @@ abstract class FileBackendStore extends FileBackend { $params['dst'], $this->maxFileSizeInternal() ); } else { $status = $this->doStoreInternal( $params ); - $this->clearCache( array( $params['dst'] ) ); + $this->clearCache( [ $params['dst'] ] ); if ( !isset( $params['dstExists'] ) || $params['dstExists'] ) { $this->deleteFileCache( $params['dst'] ); // persistent cache } @@ -201,7 +201,7 @@ abstract class FileBackendStore extends FileBackend { final public function copyInternal( array $params ) { $ps = Profiler::instance()->scopedProfileIn( __METHOD__ . "-{$this->name}" ); $status = $this->doCopyInternal( $params ); - $this->clearCache( array( $params['dst'] ) ); + $this->clearCache( [ $params['dst'] ] ); if ( !isset( $params['dstExists'] ) || $params['dstExists'] ) { $this->deleteFileCache( $params['dst'] ); // persistent cache } @@ -233,7 +233,7 @@ abstract class FileBackendStore extends FileBackend { final public function deleteInternal( array $params ) { $ps = Profiler::instance()->scopedProfileIn( __METHOD__ . "-{$this->name}" ); $status = $this->doDeleteInternal( $params ); - $this->clearCache( array( $params['src'] ) ); + $this->clearCache( [ $params['src'] ] ); $this->deleteFileCache( $params['src'] ); // persistent cache return $status; } @@ -267,7 +267,7 @@ abstract class FileBackendStore extends FileBackend { final public function moveInternal( array $params ) { $ps = Profiler::instance()->scopedProfileIn( __METHOD__ . "-{$this->name}" ); $status = $this->doMoveInternal( $params ); - $this->clearCache( array( $params['src'], $params['dst'] ) ); + $this->clearCache( [ $params['src'], $params['dst'] ] ); $this->deleteFileCache( $params['src'] ); // persistent cache if ( !isset( $params['dstExists'] ) || $params['dstExists'] ) { $this->deleteFileCache( $params['dst'] ); // persistent cache @@ -289,7 +289,7 @@ abstract class FileBackendStore extends FileBackend { $status = $this->copyInternal( $params ); if ( $nsrc !== $ndst && $status->isOK() ) { // Delete source (only fails due to races or network problems) - $status->merge( $this->deleteInternal( array( 'src' => $params['src'] ) ) ); + $status->merge( $this->deleteInternal( [ 'src' => $params['src'] ] ) ); $status->setResult( true, $status->value ); // ignore delete() errors } @@ -314,7 +314,7 @@ abstract class FileBackendStore extends FileBackend { $ps = Profiler::instance()->scopedProfileIn( __METHOD__ . "-{$this->name}" ); if ( count( $params['headers'] ) ) { $status = $this->doDescribeInternal( $params ); - $this->clearCache( array( $params['src'] ) ); + $this->clearCache( [ $params['src'] ] ); $this->deleteFileCache( $params['src'] ); // persistent cache } else { $status = Status::newGood(); // nothing to do @@ -387,7 +387,7 @@ abstract class FileBackendStore extends FileBackend { $fsFiles = $this->getLocalReferenceMulti( $params ); foreach ( $fsFiles as $path => &$fsFile ) { if ( !$fsFile ) { // chunk failed to download? - $fsFile = $this->getLocalReference( array( 'src' => $path ) ); + $fsFile = $this->getLocalReference( [ 'src' => $path ] ); if ( !$fsFile ) { // retry failed? $status->fatal( 'backend-fail-read', $path ); @@ -547,11 +547,11 @@ abstract class FileBackendStore extends FileBackend { // Recursive: first delete all empty subdirs recursively if ( !empty( $params['recursive'] ) && !$this->directoriesAreVirtual() ) { - $subDirsRel = $this->getTopDirectoryList( array( 'dir' => $params['dir'] ) ); + $subDirsRel = $this->getTopDirectoryList( [ 'dir' => $params['dir'] ] ); if ( $subDirsRel !== null ) { // no errors foreach ( $subDirsRel as $subDirRel ) { $subDir = $params['dir'] . "/{$subDirRel}"; // full path - $status->merge( $this->doClean( array( 'dir' => $subDir ) + $params ) ); + $status->merge( $this->doClean( [ 'dir' => $subDir ] + $params ) ); } unset( $subDirsRel ); // free directory for rmdir() on Windows (for FS backends) } @@ -565,7 +565,7 @@ abstract class FileBackendStore extends FileBackend { } // Attempt to lock this directory... - $filesLockEx = array( $params['dir'] ); + $filesLockEx = [ $params['dir'] ]; $scopedLockE = $this->getScopedFileLocks( $filesLockEx, LockManager::LOCK_EX, $status ); if ( !$status->isOK() ) { return $status; // abort @@ -626,7 +626,7 @@ abstract class FileBackendStore extends FileBackend { $ps = Profiler::instance()->scopedProfileIn( __METHOD__ . "-{$this->name}" ); $latest = !empty( $params['latest'] ); // use latest data? if ( !$latest && !$this->cheapCache->has( $path, 'stat', self::CACHE_TTL ) ) { - $this->primeFileCache( array( $path ) ); // check persistent cache + $this->primeFileCache( [ $path ] ); // check persistent cache } if ( $this->cheapCache->has( $path, 'stat', self::CACHE_TTL ) ) { $stat = $this->cheapCache->get( $path, 'stat' ); @@ -636,7 +636,7 @@ abstract class FileBackendStore extends FileBackend { if ( !$latest || $stat['latest'] ) { return $stat; } - } elseif ( in_array( $stat, array( 'NOT_EXIST', 'NOT_EXIST_LATEST' ) ) ) { + } elseif ( in_array( $stat, [ 'NOT_EXIST', 'NOT_EXIST_LATEST' ] ) ) { if ( !$latest || $stat === 'NOT_EXIST_LATEST' ) { return false; } @@ -650,17 +650,17 @@ abstract class FileBackendStore extends FileBackend { $this->setFileCache( $path, $stat ); // update persistent cache if ( isset( $stat['sha1'] ) ) { // some backends store SHA-1 as metadata $this->cheapCache->set( $path, 'sha1', - array( 'hash' => $stat['sha1'], 'latest' => $latest ) ); + [ 'hash' => $stat['sha1'], 'latest' => $latest ] ); } if ( isset( $stat['xattr'] ) ) { // some backends store headers/metadata $stat['xattr'] = self::normalizeXAttributes( $stat['xattr'] ); $this->cheapCache->set( $path, 'xattr', - array( 'map' => $stat['xattr'], 'latest' => $latest ) ); + [ 'map' => $stat['xattr'], 'latest' => $latest ] ); } } elseif ( $stat === false ) { // file does not exist $this->cheapCache->set( $path, 'stat', $latest ? 'NOT_EXIST_LATEST' : 'NOT_EXIST' ); - $this->cheapCache->set( $path, 'xattr', array( 'map' => false, 'latest' => $latest ) ); - $this->cheapCache->set( $path, 'sha1', array( 'hash' => false, 'latest' => $latest ) ); + $this->cheapCache->set( $path, 'xattr', [ 'map' => false, 'latest' => $latest ] ); + $this->cheapCache->set( $path, 'sha1', [ 'hash' => false, 'latest' => $latest ] ); wfDebug( __METHOD__ . ": File $path does not exist.\n" ); } else { // an error occurred wfDebug( __METHOD__ . ": Could not stat file $path.\n" ); @@ -689,7 +689,7 @@ abstract class FileBackendStore extends FileBackend { * @return array */ protected function doGetFileContentsMulti( array $params ) { - $contents = array(); + $contents = []; foreach ( $this->doGetLocalReferenceMulti( $params ) as $path => $fsFile ) { MediaWiki\suppressWarnings(); $contents[$path] = $fsFile ? file_get_contents( $fsFile->getPath() ) : false; @@ -716,7 +716,7 @@ abstract class FileBackendStore extends FileBackend { } $fields = $this->doGetFileXAttributes( $params ); $fields = is_array( $fields ) ? self::normalizeXAttributes( $fields ) : false; - $this->cheapCache->set( $path, 'xattr', array( 'map' => $fields, 'latest' => $latest ) ); + $this->cheapCache->set( $path, 'xattr', [ 'map' => $fields, 'latest' => $latest ] ); return $fields; } @@ -726,7 +726,7 @@ abstract class FileBackendStore extends FileBackend { * @return bool|string */ protected function doGetFileXAttributes( array $params ) { - return array( 'headers' => array(), 'metadata' => array() ); // not supported + return [ 'headers' => [], 'metadata' => [] ]; // not supported } final public function getFileSha1Base36( array $params ) { @@ -745,7 +745,7 @@ abstract class FileBackendStore extends FileBackend { } } $hash = $this->doGetFileSha1Base36( $params ); - $this->cheapCache->set( $path, 'sha1', array( 'hash' => $hash, 'latest' => $latest ) ); + $this->cheapCache->set( $path, 'sha1', [ 'hash' => $hash, 'latest' => $latest ] ); return $hash; } @@ -777,7 +777,7 @@ abstract class FileBackendStore extends FileBackend { $params = $this->setConcurrencyFlags( $params ); - $fsFiles = array(); // (path => FSFile) + $fsFiles = []; // (path => FSFile) $latest = !empty( $params['latest'] ); // use latest data? // Reuse any files already in process cache... foreach ( $params['srcs'] as $src ) { @@ -799,7 +799,7 @@ abstract class FileBackendStore extends FileBackend { $fsFiles[$path] = $fsFile; if ( $fsFile ) { // update the process cache... $this->expensiveCache->set( $path, 'localRef', - array( 'object' => $fsFile, 'latest' => $latest ) ); + [ 'object' => $fsFile, 'latest' => $latest ] ); } } @@ -850,7 +850,7 @@ abstract class FileBackendStore extends FileBackend { } // Set output buffer and HTTP headers for stream - $extraHeaders = isset( $params['headers'] ) ? $params['headers'] : array(); + $extraHeaders = isset( $params['headers'] ) ? $params['headers'] : []; $res = StreamFile::prepareForStream( $params['src'], $info, $extraHeaders ); if ( $res == StreamFile::NOT_MODIFIED ) { // do nothing; client cache is up to date @@ -860,7 +860,7 @@ abstract class FileBackendStore extends FileBackend { // Per bug 41113, nasty things can happen if bad cache entries get // stuck in cache. It's also possible that this error can come up // with simple race conditions. Clear out the stat cache to be safe. - $this->clearCache( array( $params['src'] ) ); + $this->clearCache( [ $params['src'] ] ); $this->deleteFileCache( $params['src'] ); trigger_error( "Bad stat cache or race condition for file {$params['src']}." ); } @@ -996,7 +996,7 @@ abstract class FileBackendStore extends FileBackend { * @throws FileBackendError */ final public function getOperationsInternal( array $ops ) { - $supportedOps = array( + $supportedOps = [ 'store' => 'StoreFileOp', 'copy' => 'CopyFileOp', 'move' => 'MoveFileOp', @@ -1004,9 +1004,9 @@ abstract class FileBackendStore extends FileBackend { 'create' => 'CreateFileOp', 'describe' => 'DescribeFileOp', 'null' => 'NullFileOp' - ); + ]; - $performOps = array(); // array of FileOp objects + $performOps = []; // array of FileOp objects // Build up ordered array of FileOps... foreach ( $ops as $operation ) { $opName = $operation['op']; @@ -1036,7 +1036,7 @@ abstract class FileBackendStore extends FileBackend { */ final public function getPathsToLockForOpsInternal( array $performOps ) { // Build up a list of files to lock... - $paths = array( 'sh' => array(), 'ex' => array() ); + $paths = [ 'sh' => [], 'ex' => [] ]; foreach ( $performOps as $fileOp ) { $paths['sh'] = array_merge( $paths['sh'], $fileOp->storagePathsRead() ); $paths['ex'] = array_merge( $paths['ex'], $fileOp->storagePathsChanged() ); @@ -1046,10 +1046,10 @@ abstract class FileBackendStore extends FileBackend { // Get a shared lock on the parent directory of each path changed $paths['sh'] = array_merge( $paths['sh'], array_map( 'dirname', $paths['ex'] ) ); - return array( + return [ LockManager::LOCK_UW => $paths['sh'], LockManager::LOCK_EX => $paths['ex'] - ); + ]; } public function getScopedLocksForOps( array $ops, Status $status ) { @@ -1063,7 +1063,7 @@ abstract class FileBackendStore extends FileBackend { $status = Status::newGood(); // Fix up custom header name/value pairs... - $ops = array_map( array( $this, 'sanitizeOpHeaders' ), $ops ); + $ops = array_map( [ $this, 'sanitizeOpHeaders' ], $ops ); // Build up a list of FileOps... $performOps = $this->getOperationsInternal( $ops ); @@ -1086,7 +1086,7 @@ abstract class FileBackendStore extends FileBackend { } // Build the list of paths involved - $paths = array(); + $paths = []; foreach ( $performOps as $op ) { $paths = array_merge( $paths, $op->storagePathsRead() ); $paths = array_merge( $paths, $op->storagePathsChanged() ); @@ -1098,7 +1098,7 @@ abstract class FileBackendStore extends FileBackend { // Load from the persistent container caches $this->primeContainerCache( $paths ); // Get the latest stat info for all the files (having locked them) - $ok = $this->preloadFileStat( array( 'srcs' => $paths, 'latest' => true ) ); + $ok = $this->preloadFileStat( [ 'srcs' => $paths, 'latest' => true ] ); if ( $ok ) { // Actually attempt the operation batch... @@ -1130,30 +1130,30 @@ abstract class FileBackendStore extends FileBackend { $status = Status::newGood(); // Fix up custom header name/value pairs... - $ops = array_map( array( $this, 'sanitizeOpHeaders' ), $ops ); + $ops = array_map( [ $this, 'sanitizeOpHeaders' ], $ops ); // Clear any file cache entries $this->clearCache(); - $supportedOps = array( 'create', 'store', 'copy', 'move', 'delete', 'describe', 'null' ); + $supportedOps = [ 'create', 'store', 'copy', 'move', 'delete', 'describe', 'null' ]; // Parallel ops may be disabled in config due to dependencies (e.g. needing popen()) $async = ( $this->parallelize === 'implicit' && count( $ops ) > 1 ); $maxConcurrency = $this->concurrency; // throttle - $statuses = array(); // array of (index => Status) - $fileOpHandles = array(); // list of (index => handle) arrays - $curFileOpHandles = array(); // current handle batch + $statuses = []; // array of (index => Status) + $fileOpHandles = []; // list of (index => handle) arrays + $curFileOpHandles = []; // current handle batch // Perform the sync-only ops and build up op handles for the async ops... foreach ( $ops as $index => $params ) { if ( !in_array( $params['op'], $supportedOps ) ) { throw new FileBackendError( "Operation '{$params['op']}' is not supported." ); } $method = $params['op'] . 'Internal'; // e.g. "storeInternal" - $subStatus = $this->$method( array( 'async' => $async ) + $params ); + $subStatus = $this->$method( [ 'async' => $async ] + $params ); if ( $subStatus->value instanceof FileBackendStoreOpHandle ) { // async if ( count( $curFileOpHandles ) >= $maxConcurrency ) { $fileOpHandles[] = $curFileOpHandles; // push this batch - $curFileOpHandles = array(); + $curFileOpHandles = []; } $curFileOpHandles[$index] = $subStatus->value; // keep index } else { // error or completed @@ -1223,7 +1223,7 @@ abstract class FileBackendStore extends FileBackend { throw new FileBackendError( "This backend supports no asynchronous operations." ); } - return array(); + return []; } /** @@ -1238,10 +1238,10 @@ abstract class FileBackendStore extends FileBackend { * @return array */ protected function sanitizeOpHeaders( array $op ) { - static $longs = array( 'content-disposition' ); + static $longs = [ 'content-disposition' ]; if ( isset( $op['headers'] ) ) { // op sets HTTP headers - $newHeaders = array(); + $newHeaders = []; foreach ( $op['headers'] as $name => $value ) { $name = strtolower( $name ); $maxHVLen = in_array( $name, $longs ) ? INF : 255; @@ -1258,7 +1258,7 @@ abstract class FileBackendStore extends FileBackend { } final public function preloadCache( array $paths ) { - $fullConts = array(); // full container names + $fullConts = []; // full container names foreach ( $paths as $path ) { list( $fullCont, , ) = $this->resolveStoragePath( $path ); $fullConts[] = $fullCont; @@ -1318,20 +1318,20 @@ abstract class FileBackendStore extends FileBackend { $this->setFileCache( $path, $stat ); // update persistent cache if ( isset( $stat['sha1'] ) ) { // some backends store SHA-1 as metadata $this->cheapCache->set( $path, 'sha1', - array( 'hash' => $stat['sha1'], 'latest' => $latest ) ); + [ 'hash' => $stat['sha1'], 'latest' => $latest ] ); } if ( isset( $stat['xattr'] ) ) { // some backends store headers/metadata $stat['xattr'] = self::normalizeXAttributes( $stat['xattr'] ); $this->cheapCache->set( $path, 'xattr', - array( 'map' => $stat['xattr'], 'latest' => $latest ) ); + [ 'map' => $stat['xattr'], 'latest' => $latest ] ); } } elseif ( $stat === false ) { // file does not exist $this->cheapCache->set( $path, 'stat', $latest ? 'NOT_EXIST_LATEST' : 'NOT_EXIST' ); $this->cheapCache->set( $path, 'xattr', - array( 'map' => false, 'latest' => $latest ) ); + [ 'map' => false, 'latest' => $latest ] ); $this->cheapCache->set( $path, 'sha1', - array( 'hash' => false, 'latest' => $latest ) ); + [ 'hash' => false, 'latest' => $latest ] ); wfDebug( __METHOD__ . ": File $path does not exist.\n" ); } else { // an error occurred $success = false; @@ -1430,14 +1430,14 @@ abstract class FileBackendStore extends FileBackend { // Validate and sanitize the container name (backend-specific) $container = $this->resolveContainerName( "{$container}{$cShard}" ); if ( $container !== null ) { - return array( $container, $relPath, $cShard ); + return [ $container, $relPath, $cShard ]; } } } } } - return array( null, null, null ); + return [ null, null, null ]; } /** @@ -1458,10 +1458,10 @@ abstract class FileBackendStore extends FileBackend { final protected function resolveStoragePathReal( $storagePath ) { list( $container, $relPath, $cShard ) = $this->resolveStoragePath( $storagePath ); if ( $cShard !== null && substr( $relPath, -1 ) !== '/' ) { - return array( $container, $relPath ); + return [ $container, $relPath ]; } - return array( null, null ); + return [ null, null ]; } /** @@ -1491,7 +1491,7 @@ abstract class FileBackendStore extends FileBackend { // Allow certain directories to be above the hash dirs so as // to work with FileRepo (e.g. "archive/a/ab" or "temp/a/ab"). // They must be 2+ chars to avoid any hash directory ambiguity. - $m = array(); + $m = []; if ( preg_match( "!^(?:[^/]{2,}/)*$hashDirRegex(?:/|$)!", $relPath, $m ) ) { return '.' . implode( '', array_slice( $m, 1 ) ); } @@ -1531,12 +1531,12 @@ abstract class FileBackendStore extends FileBackend { if ( $hashLevels == 1 || $hashLevels == 2 ) { $hashBase = (int)$config['base']; if ( $hashBase == 16 || $hashBase == 36 ) { - return array( $hashLevels, $hashBase, $config['repeat'] ); + return [ $hashLevels, $hashBase, $config['repeat'] ]; } } } - return array( 0, 0, false ); // no sharding + return [ 0, 0, false ]; // no sharding } /** @@ -1546,12 +1546,12 @@ abstract class FileBackendStore extends FileBackend { * @return array */ final protected function getContainerSuffixes( $container ) { - $shards = array(); + $shards = []; list( $digits, $base ) = $this->getContainerHashLevels( $container ); if ( $digits > 0 ) { $numShards = pow( $base, $digits ); for ( $index = 0; $index < $numShards; $index++ ) { - $shards[] = '.' . wfBaseConvert( $index, 10, $base, $digits ); + $shards[] = '.' . Wikimedia\base_convert( $index, 10, $base, $digits ); } } @@ -1640,8 +1640,8 @@ abstract class FileBackendStore extends FileBackend { final protected function primeContainerCache( array $items ) { $ps = Profiler::instance()->scopedProfileIn( __METHOD__ . "-{$this->name}" ); - $paths = array(); // list of storage paths - $contNames = array(); // (cache key => resolved container name) + $paths = []; // list of storage paths + $contNames = []; // (cache key => resolved container name) // Get all the paths/containers from the items... foreach ( $items as $item ) { if ( self::isStoragePath( $item ) ) { @@ -1658,7 +1658,7 @@ abstract class FileBackendStore extends FileBackend { } } - $contInfo = array(); // (resolved container name => cache value) + $contInfo = []; // (resolved container name => cache value) // Get all cache entries for these container cache keys... $values = $this->memCache->getMulti( array_keys( $contNames ) ); foreach ( $values as $cacheKey => $val ) { @@ -1737,8 +1737,8 @@ abstract class FileBackendStore extends FileBackend { final protected function primeFileCache( array $items ) { $ps = Profiler::instance()->scopedProfileIn( __METHOD__ . "-{$this->name}" ); - $paths = array(); // list of storage paths - $pathNames = array(); // (cache key => storage path) + $paths = []; // list of storage paths + $pathNames = []; // (cache key => storage path) // Get all the paths/containers from the items... foreach ( $items as $item ) { if ( self::isStoragePath( $item ) ) { @@ -1763,12 +1763,12 @@ abstract class FileBackendStore extends FileBackend { $this->cheapCache->set( $path, 'stat', $val ); if ( isset( $val['sha1'] ) ) { // some backends store SHA-1 as metadata $this->cheapCache->set( $path, 'sha1', - array( 'hash' => $val['sha1'], 'latest' => false ) ); + [ 'hash' => $val['sha1'], 'latest' => false ] ); } if ( isset( $val['xattr'] ) ) { // some backends store headers/metadata $val['xattr'] = self::normalizeXAttributes( $val['xattr'] ); $this->cheapCache->set( $path, 'xattr', - array( 'map' => $val['xattr'], 'latest' => false ) ); + [ 'map' => $val['xattr'], 'latest' => false ] ); } } } @@ -1782,7 +1782,7 @@ abstract class FileBackendStore extends FileBackend { * @since 1.22 */ final protected static function normalizeXAttributes( array $xattr ) { - $newXAttr = array( 'headers' => array(), 'metadata' => array() ); + $newXAttr = [ 'headers' => [], 'metadata' => [] ]; foreach ( $xattr['headers'] as $name => $value ) { $newXAttr['headers'][strtolower( $name )] = $value; @@ -1850,11 +1850,11 @@ abstract class FileBackendStore extends FileBackend { */ abstract class FileBackendStoreOpHandle { /** @var array */ - public $params = array(); // params to caller functions + public $params = []; // params to caller functions /** @var FileBackendStore */ public $backend; /** @var array */ - public $resourcesToClose = array(); + public $resourcesToClose = []; public $call; // string; name that identifies the function called @@ -1886,7 +1886,7 @@ abstract class FileBackendStoreShardListIterator extends FilterIterator { protected $directory; /** @var array */ - protected $multiShardPaths = array(); // (rel path => 1) + protected $multiShardPaths = []; // (rel path => 1) /** * @param FileBackendStore $backend @@ -1928,7 +1928,7 @@ abstract class FileBackendStoreShardListIterator extends FilterIterator { public function rewind() { parent::rewind(); - $this->multiShardPaths = array(); + $this->multiShardPaths = []; } /** @@ -1948,7 +1948,7 @@ class FileBackendStoreShardDirIterator extends FileBackendStoreShardListIterator $list = $this->backend->getDirectoryListInternal( $container, $this->directory, $this->params ); if ( $list === null ) { - return new ArrayIterator( array() ); + return new ArrayIterator( [] ); } else { return is_array( $list ) ? new ArrayIterator( $list ) : $list; } @@ -1963,7 +1963,7 @@ class FileBackendStoreShardFileIterator extends FileBackendStoreShardListIterato $list = $this->backend->getFileListInternal( $container, $this->directory, $this->params ); if ( $list === null ) { - return new ArrayIterator( array() ); + return new ArrayIterator( [] ); } else { return is_array( $list ) ? new ArrayIterator( $list ) : $list; }