MediaWiki  REL1_24
RepoGroup Class Reference

Prioritized list of file repositories. More...

Collaboration diagram for RepoGroup:

List of all members.

Public Member Functions

 __construct ($localInfo, $foreignInfo)
 Construct a group of file repositories.
 checkRedirect (Title $title)
 Interface for FileRepo::checkRedirect()
 clearCache (Title $title=null)
 Clear RepoGroup process cache used for finding a file.
 findBySha1 ($hash)
 Find all instances of files with this key.
 findBySha1s (array $hashes)
 Find all instances of files with this keys.
 findFile ($title, $options=array())
 Search repositories for an image.
 findFileFromKey ($hash, $options=array())
 Find an instance of the file with this key, created at the specified time Returns false if the file does not exist.
 findFiles (array $inputItems, $flags=0)
 Search repositories for many files at once.
 forEachForeignRepo ($callback, $params=array())
 Call a function for each foreign repo, with the repo object as the first parameter.
 getFileProps ($fileName)
 getLocalRepo ()
 Get the local repository, i.e.
 getRepo ($index)
 Get the repo instance with a given key.
 getRepoByName ($name)
 Get the repo instance by its name.
 hasForeignRepos ()
 Does the installation have any foreign repos set up?
 initialiseRepos ()
 Initialise the $repos array.
 splitVirtualUrl ($url)
 Split a virtual URL into repo, zone and rel parts.

Static Public Member Functions

static destroySingleton ()
 Destroy the singleton instance, so that a new one will be created next time singleton() is called.
static setSingleton ($instance)
 Set the singleton instance to a given object Used by extensions which hook into the Repo chain.
static singleton ()
 Get a RepoGroup instance.

Public Attributes

const MAX_CACHE_SIZE = 500
 Maximum number of cache items.

Protected Member Functions

 newRepo ($info)
 Create a repo class based on an info structure.

Protected Attributes

ProcessCacheLRU $cache
 *
array $foreignInfo
 *
FileRepo[] $foreignRepos
 *
array $localInfo
 *
LocalRepo $localRepo
 *
bool $reposInitialised = false
 *

Static Protected Attributes

static $instance

Detailed Description

Prioritized list of file repositories.

Definition at line 29 of file RepoGroup.php.


Constructor & Destructor Documentation

RepoGroup::__construct ( localInfo,
foreignInfo 
)

Construct a group of file repositories.

Parameters:
array$localInfoAssociative array for local repo's info
array$foreignInfoArray of repository info arrays. Each info array is an associative array with the 'class' member giving the class name. The entire array is passed to the repository constructor as the first parameter.

Definition at line 92 of file RepoGroup.php.


Member Function Documentation

Interface for FileRepo::checkRedirect()

Parameters:
Title$title
Returns:
bool|Title

Definition at line 216 of file RepoGroup.php.

References as, and initialiseRepos().

RepoGroup::clearCache ( Title title = null)

Clear RepoGroup process cache used for finding a file.

Parameters:
Title | null$titleTitle of the file or null to clear all files

Definition at line 452 of file RepoGroup.php.

RepoGroup::findBySha1 ( hash)

Find all instances of files with this key.

Parameters:
string$hashBase 36 SHA-1 hash
Returns:
File[]

Definition at line 268 of file RepoGroup.php.

Find all instances of files with this keys.

Parameters:
array$hashesBase 36 SHA-1 hashes
Returns:
array Array of array of File objects

Definition at line 288 of file RepoGroup.php.

RepoGroup::findFile ( title,
options = array() 
)

Search repositories for an image.

You can also use wfFindFile() to do this.

Parameters:
Title | string$titleTitle object or string
array$optionsAssociative array of options: time: requested time for an archived image, or false for the current version. An image object will be returned which was created at the specified time. ignoreRedirect: If true, do not follow file redirects private: If true, return restricted (deleted) files if the current user is allowed to view them. Otherwise, such files will not be found. bypassCache: If true, do not use the process-local cache of File objects
Returns:
File|bool False if title is not found

Definition at line 114 of file RepoGroup.php.

RepoGroup::findFileFromKey ( hash,
options = array() 
)

Find an instance of the file with this key, created at the specified time Returns false if the file does not exist.

Parameters:
string$hashBase 36 SHA-1 hash
array$optionsOption array, same as findFile()
Returns:
File|bool File object or false if it is not found

Definition at line 244 of file RepoGroup.php.

RepoGroup::findFiles ( array inputItems,
flags = 0 
)

Search repositories for many files at once.

Parameters:
array$inputItemsAn array of titles, or an array of findFile() options with the "title" option giving the title. Example:

$findItem = array( 'title' => $title, 'private' => true ); $findBatch = array( $findItem ); $repo->findFiles( $findBatch );

No title should appear in $items twice, as the result use titles as keys

Parameters:
int$flagsSupports:
  • FileRepo::NAME_AND_TIME_ONLY : return a (search title => (title,timestamp)) map. The search title uses the input titles; the other is the final post-redirect title. All titles are returned as string DB keys and the inner array is associative.
Returns:
array Map of (file name => File objects) for matches

Definition at line 181 of file RepoGroup.php.

RepoGroup::forEachForeignRepo ( callback,
params = array() 
)

Call a function for each foreign repo, with the repo object as the first parameter.

Parameters:
callable$callbackThe function to call
array$paramsOptional additional parameters to pass to the function
Returns:
bool

Definition at line 359 of file RepoGroup.php.

RepoGroup::getFileProps ( fileName)
Parameters:
string$fileName
Returns:
array

Definition at line 434 of file RepoGroup.php.

Get the local repository, i.e.

the one corresponding to the local image table. Files are typically uploaded to the local repository.

Returns:
LocalRepo

Definition at line 347 of file RepoGroup.php.

RepoGroup::getRepo ( index)

Get the repo instance with a given key.

Parameters:
string | int$index
Returns:
bool|LocalRepo

Definition at line 310 of file RepoGroup.php.

References initialiseRepos().

Get the repo instance by its name.

Parameters:
string$name
Returns:
bool

Definition at line 328 of file RepoGroup.php.

References $name, as, and initialiseRepos().

Does the installation have any foreign repos set up?

Returns:
bool

Definition at line 377 of file RepoGroup.php.

Initialise the $repos array.

Definition at line 387 of file RepoGroup.php.

Referenced by checkRedirect(), getRepo(), and getRepoByName().

RepoGroup::newRepo ( info) [protected]

Create a repo class based on an info structure.

Parameters:
array$info
Returns:
FileRepo

Definition at line 405 of file RepoGroup.php.

static RepoGroup::setSingleton ( instance) [static]

Set the singleton instance to a given object Used by extensions which hook into the Repo chain.

It's not enough to just create a superclass ... you have to get people to call into it even though all they know is RepoGroup::singleton()

Parameters:
RepoGroup$instance

Definition at line 79 of file RepoGroup.php.

static RepoGroup::singleton ( ) [static]

Get a RepoGroup instance.

At present only one instance of RepoGroup is needed in a MediaWiki invocation, this may change in the future.

Returns:
RepoGroup

Definition at line 53 of file RepoGroup.php.

References $instance, and global.

Referenced by RevDelFileItem\__construct(), ApiQueryAllImages\__construct(), UploadFromStash\__construct(), SpecialUploadStash\__construct(), LocalFileRestoreBatch\addIds(), RevertAction\checkCanExecute(), UploadBase\checkWarnings(), ApiDelete\deleteFile(), ApiTestCaseUpload\deleteFileByContent(), DeleteArchivedFilesImplementation\doDelete(), ApiMove\execute(), ApiQueryStashImageInfo\execute(), FindMissingFiles\execute(), CheckImages\execute(), RefreshFileHeaders\execute(), UploadStashCleanup\execute(), ApiQueryImageInfo\execute(), RefreshImageMetadata\execute(), Parser\fetchFileNoRegister(), ImageCleanup\filePath(), ImageListPager\formatValue(), UploadForm\getDescriptionSection(), ApiQueryFileRepoInfo\getInitialisedRepoGroup(), UploadBase\getRealPath(), UploadBase\getTitle(), WantedFilesPage\likelyToHaveFalsePositives(), Linker\makeBrokenImageLinkObj(), ApiQueryDuplicateFiles\run(), EraseArchivedFile\scrubVersion(), UploadBase\stashFile(), RepoGroupTest\testForEachForeignRepo(), RepoGroupTest\testForEachForeignRepoNone(), RepoGroupTest\testHasForeignRepoNegative(), RepoGroupTest\testHasForeignRepoPositive(), SpecialUploadStash\tryClearStashedUploads(), wfExtractThumbRequestInfo(), wfFindFile(), wfIsBadImage(), wfLocalFile(), wfStreamThumb(), and wfThumbHandle404().

Split a virtual URL into repo, zone and rel parts.

Parameters:
string$url
Exceptions:
MWException
Returns:
array Containing repo, zone and rel

Definition at line 417 of file RepoGroup.php.


Member Data Documentation

ProcessCacheLRU RepoGroup::$cache [protected]

*

Definition at line 40 of file RepoGroup.php.

array RepoGroup::$foreignInfo [protected]

*

Definition at line 38 of file RepoGroup.php.

FileRepo [] RepoGroup::$foreignRepos [protected]

*

Definition at line 32 of file RepoGroup.php.

RepoGroup::$instance [static, protected]

Definition at line 43 of file RepoGroup.php.

Referenced by singleton().

array RepoGroup::$localInfo [protected]

*

Definition at line 36 of file RepoGroup.php.

LocalRepo RepoGroup::$localRepo [protected]

*

Definition at line 30 of file RepoGroup.php.

bool RepoGroup::$reposInitialised = false [protected]

*

Definition at line 34 of file RepoGroup.php.

Maximum number of cache items.

Definition at line 46 of file RepoGroup.php.


The documentation for this class was generated from the following file: