MediaWiki  master
DescribeFileOp.php
Go to the documentation of this file.
1 <?php
28 class DescribeFileOp extends FileOp {
29  protected function allowedParams() {
30  return [ [ 'src' ], [ 'headers' ], [ 'src' ] ];
31  }
32 
33  protected function doPrecheck( array &$predicates ) {
34  $status = StatusValue::newGood();
35 
36  // Check source file existence
37  $srcExists = $this->fileExists( $this->params['src'], $predicates );
38  if ( $srcExists === false ) {
39  $status->fatal( 'backend-fail-notexists', $this->params['src'] );
40 
41  return $status;
42  } elseif ( $srcExists === FileBackend::EXISTENCE_ERROR ) {
43  $status->fatal( 'backend-fail-stat', $this->params['src'] );
44 
45  return $status;
46  }
47 
48  // Update file existence predicates since the operation is expected to be allowed to run
49  $predicates[self::ASSUMED_EXISTS][$this->params['src']] = $srcExists;
50  $predicates[self::ASSUMED_SIZE][$this->params['src']] =
51  $this->fileSize( $this->params['src'], $predicates );
52  $predicates[self::ASSUMED_SHA1][$this->params['src']] =
53  $this->fileSha1( $this->params['src'], $predicates );
54 
55  return $status; // safe to call attempt()
56  }
57 
58  protected function doAttempt() {
59  // Update the source file's metadata
60  return $this->backend->describeInternal( $this->setFlags( $this->params ) );
61  }
62 
63  public function storagePathsChanged() {
64  return [ $this->params['src'] ];
65  }
66 }
Change metadata for a file at the given storage path in the backend.
storagePathsChanged()
Get a list of storage paths written to for this operation.
allowedParams()
Get the file operation parameters.
doPrecheck(array &$predicates)
FileBackend helper class for representing operations.
Definition: FileOp.php:37
fileSha1( $source, array $predicates)
Get the SHA-1 of a file in storage when this operation is attempted.
Definition: FileOp.php:474
fileExists( $source, array $predicates)
Check if a file will exist in storage when this operation is attempted.
Definition: FileOp.php:431
const ASSUMED_EXISTS
Definition: FileOp.php:72
const ASSUMED_SIZE
Definition: FileOp.php:73
const ASSUMED_SHA1
Definition: FileOp.php:71
setFlags(array $params)
Adjust params to FileBackendStore internal file calls.
Definition: FileOp.php:318
fileSize( $source, array $predicates)
Get the size a file in storage will have when this operation is attempted.
Definition: FileOp.php:452
static newGood( $value=null)
Factory function for good results.
Definition: StatusValue.php:85