|
MediaWiki
master
|
FileBackend helper class for representing operations. More...


Public Member Functions | |
| __construct (FileBackendStore $backend, array $params) | |
| Build a new batch file operation transaction. More... | |
| applyDependencies (array $deps) | |
| Update a dependency tracking array to account for this operation. More... | |
| attempt () | |
| Attempt the operation. More... | |
| attemptAsync () | |
| Attempt the operation in the background. More... | |
| dependsOn (array $deps) | |
| Check if this operation changes files listed in $paths. More... | |
| failed () | |
| Check if this operation failed precheck() or attempt() More... | |
| getBackend () | |
| Get the backend this operation is for. More... | |
| getJournalEntries (array $oPredicates, array $nPredicates) | |
| Get the file journal entries for this file operation. More... | |
| getParam ($name) | |
| Get the value of the parameter with the given name. More... | |
| logFailure ($action) | |
| Log a file operation failure and preserve any temp files. More... | |
| precheck (array &$predicates) | |
| Check preconditions of the operation without writing anything. More... | |
| setBatchId ($batchId) | |
| Set the batch UUID this operation belongs to. More... | |
| storagePathsChanged () | |
| Get a list of storage paths written to for this operation. More... | |
| storagePathsRead () | |
| Get a list of storage paths read from for this operation. More... | |
Static Public Member Functions | |
| static | newDependencies () |
| Get a new empty dependency tracking array for paths read/written to. More... | |
| static | newPredicates () |
| Get a new empty predicates array for precheck() More... | |
Public Attributes | |
| const | STATE_ATTEMPTED = 3 |
| const | STATE_CHECKED = 2 |
| const | STATE_NEW = 1 |
Protected Member Functions | |
| allowedParams () | |
| Get the file operation parameters. More... | |
| doAttempt () | |
| doPrecheck (array &$predicates) | |
| fileExists ($source, array $predicates) | |
| Check if a file will exist in storage when this operation is attempted. More... | |
| fileSha1 ($source, array $predicates) | |
| Get the SHA-1 of a file in storage when this operation is attempted. More... | |
| getSourceSha1Base36 () | |
| precheckDestExistence() helper function to get the source file SHA-1. More... | |
| precheckDestExistence (array $predicates) | |
| Check for errors with regards to the destination file already existing. More... | |
| setFlags (array $params) | |
| Adjust params to FileBackendStore internal file calls. More... | |
Static Protected Member Functions | |
| static | normalizeIfValidStoragePath ($path) |
| Normalize a string if it is a valid storage path. More... | |
Protected Attributes | |
| bool | $async = false |
| FileBackendStore | $backend |
| string | $batchId |
| bool | $destExists |
| bool | $doOperation = true |
| Operation is not a no-op. More... | |
| bool | $failed = false |
| bool | $overwriteSameCase |
| array | $params = [] |
| string | $sourceSha1 |
| int | $state = self::STATE_NEW |
FileBackend helper class for representing operations.
Do not use this class from places outside FileBackend.
Methods called from FileOpBatch::attempt() should avoid throwing exceptions at all costs. FileOp objects should be lightweight in order to support large arrays in memory and serialization.
Definition at line 36 of file FileOp.php.
|
final |
Build a new batch file operation transaction.
| FileBackendStore | $backend | |
| array | $params |
| FileBackendError |
Definition at line 79 of file FileOp.php.
References $backend, $name, allowedParams(), as, and list.
|
protected |
Get the file operation parameters.
Definition at line 318 of file FileOp.php.
Referenced by __construct().
|
final |
Update a dependency tracking array to account for this operation.
| array | $deps | Prior path reads/writes; format of FileOp::newPredicates() |
Definition at line 170 of file FileOp.php.
References storagePathsChanged(), and storagePathsRead().
|
final |
Attempt the operation.
Definition at line 273 of file FileOp.php.
References $status, doAttempt(), failed(), logFailure(), Status\newFatal(), and Status\newGood().
Referenced by attemptAsync().
|
final |
Attempt the operation in the background.
Definition at line 305 of file FileOp.php.
References attempt().
|
final |
Check if this operation changes files listed in $paths.
| array | $deps | Prior path reads/writes; format of FileOp::newPredicates() |
Definition at line 183 of file FileOp.php.
References $path, as, storagePathsChanged(), and storagePathsRead().
|
protected |
Definition at line 296 of file FileOp.php.
References Status\newGood().
Referenced by attempt().
|
protected |
| array | $predicates |
Definition at line 264 of file FileOp.php.
References Status\newGood().
Referenced by precheck().
|
final |
Check if this operation failed precheck() or attempt()
Definition at line 142 of file FileOp.php.
References $failed.
Referenced by attempt(), and precheck().
|
finalprotected |
Check if a file will exist in storage when this operation is attempted.
| string | $source | Storage path |
| array | $predicates |
Definition at line 410 of file FileOp.php.
References $params, $source, and true.
Referenced by CopyFileOp\doPrecheck(), MoveFileOp\doPrecheck(), DeleteFileOp\doPrecheck(), DescribeFileOp\doPrecheck(), getJournalEntries(), and precheckDestExistence().
|
finalprotected |
Get the SHA-1 of a file in storage when this operation is attempted.
| string | $source | Storage path |
| array | $predicates |
Definition at line 427 of file FileOp.php.
References $params, $source, and true.
Referenced by DescribeFileOp\doPrecheck(), getJournalEntries(), and precheckDestExistence().
| FileOp::getBackend | ( | ) |
Get the backend this operation is for.
Definition at line 444 of file FileOp.php.
References $backend.
Get the file journal entries for this file operation.
| array | $oPredicates | Pre-op info about files (format of FileOp::newPredicates) |
| array | $nPredicates | Post-op info about files (format of FileOp::newPredicates) |
Definition at line 205 of file FileOp.php.
References $path, as, fileExists(), fileSha1(), storagePathsChanged(), and storagePathsRead().
|
final |
Get the value of the parameter with the given name.
| string | $name |
Definition at line 133 of file FileOp.php.
References $name.
Referenced by CopyFileOp\doAttempt(), MoveFileOp\doAttempt(), CreateFileOp\doPrecheck(), CopyFileOp\doPrecheck(), MoveFileOp\doPrecheck(), DeleteFileOp\doPrecheck(), and precheckDestExistence().
|
protected |
precheckDestExistence() helper function to get the source file SHA-1.
Subclasses should overwride this if the source is not in storage.
Definition at line 399 of file FileOp.php.
Referenced by precheckDestExistence().
|
final |
Log a file operation failure and preserve any temp files.
| string | $action |
Definition at line 453 of file FileOp.php.
References $e, $params, FormatJson\encode(), and wfDebugLog().
Referenced by attempt().
|
staticfinal |
Get a new empty dependency tracking array for paths read/written to.
Definition at line 160 of file FileOp.php.
Referenced by FileOpBatch\attempt().
|
staticfinal |
Get a new empty predicates array for precheck()
Definition at line 151 of file FileOp.php.
Referenced by FileOpBatch\attempt().
|
staticprotected |
Normalize a string if it is a valid storage path.
| string | $path |
Definition at line 108 of file FileOp.php.
References $path, $res, FileBackend\isStoragePath(), and FileBackend\normalizeStoragePath().
|
final |
Check preconditions of the operation without writing anything.
This must update $predicates for each path that the op can change except when a failing status object is returned.
| array | $predicates |
Definition at line 247 of file FileOp.php.
References $status, doPrecheck(), failed(), and Status\newFatal().
|
protected |
Check for errors with regards to the destination file already existing.
Also set the destExists, overwriteSameCase and sourceSha1 member variables. A bad status will be returned if there is no chance it can be overwritten.
| array | $predicates |
Definition at line 358 of file FileOp.php.
References $status, fileExists(), fileSha1(), getParam(), getSourceSha1Base36(), and Status\newGood().
Referenced by CreateFileOp\doPrecheck(), StoreFileOp\doPrecheck(), CopyFileOp\doPrecheck(), and MoveFileOp\doPrecheck().
|
final |
Set the batch UUID this operation belongs to.
| string | $batchId |
Definition at line 123 of file FileOp.php.
References $batchId.
|
protected |
Adjust params to FileBackendStore internal file calls.
| array | $params |
Definition at line 328 of file FileOp.php.
References $async, and $params.
Referenced by CreateFileOp\doAttempt(), StoreFileOp\doAttempt(), CopyFileOp\doAttempt(), MoveFileOp\doAttempt(), DeleteFileOp\doAttempt(), and DescribeFileOp\doAttempt().
| FileOp::storagePathsChanged | ( | ) |
Get a list of storage paths written to for this operation.
Definition at line 346 of file FileOp.php.
Referenced by applyDependencies(), dependsOn(), and getJournalEntries().
| FileOp::storagePathsRead | ( | ) |
Get a list of storage paths read from for this operation.
Definition at line 337 of file FileOp.php.
Referenced by applyDependencies(), dependsOn(), and getJournalEntries().
|
protected |
Definition at line 50 of file FileOp.php.
Referenced by setFlags().
|
protected |
Definition at line 41 of file FileOp.php.
Referenced by __construct(), and getBackend().
|
protected |
Definition at line 53 of file FileOp.php.
Referenced by setBatchId().
|
protected |
Definition at line 65 of file FileOp.php.
Referenced by CreateFileOp\doPrecheck(), StoreFileOp\doPrecheck(), CopyFileOp\doPrecheck(), and MoveFileOp\doPrecheck().
|
protected |
Operation is not a no-op.
Definition at line 56 of file FileOp.php.
|
protected |
Definition at line 47 of file FileOp.php.
Referenced by failed().
|
protected |
Definition at line 62 of file FileOp.php.
|
protected |
Definition at line 38 of file FileOp.php.
Referenced by fileExists(), fileSha1(), logFailure(), and setFlags().
|
protected |
Definition at line 59 of file FileOp.php.
Referenced by CreateFileOp\doPrecheck(), StoreFileOp\doPrecheck(), CopyFileOp\doPrecheck(), and MoveFileOp\doPrecheck().
|
protected |
Definition at line 44 of file FileOp.php.
| const FileOp::STATE_ATTEMPTED = 3 |
Definition at line 70 of file FileOp.php.
| const FileOp::STATE_CHECKED = 2 |
Definition at line 69 of file FileOp.php.
| const FileOp::STATE_NEW = 1 |
Definition at line 68 of file FileOp.php.