MediaWiki
1.27.3
|
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.
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.
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 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.