MediaWiki  REL1_31
LCStoreCDB Class Reference

LCStore implementation which stores data as a collection of CDB files in the directory given by $wgCacheDirectory. More...

Inheritance diagram for LCStoreCDB:
Collaboration diagram for LCStoreCDB:

Public Member Functions

 __construct ( $conf=[])
 
 finishWrite ()
 Finish a write transaction. More...
 
 get ( $code, $key)
 Get a value. More...
 
 set ( $key, $value)
 Set a key to a given value. More...
 
 startWrite ( $code)
 Start a write transaction. More...
 

Protected Member Functions

 getFileName ( $code)
 

Private Attributes

string $currentLang
 Current language code. More...
 
bool string $directory
 Cache directory. More...
 
Reader[] $readers
 
Writer $writer
 

Detailed Description

LCStore implementation which stores data as a collection of CDB files in the directory given by $wgCacheDirectory.

If $wgCacheDirectory is not set, this will throw an exception.

Profiling indicates that on Linux, this implementation outperforms MySQL if the directory is on a local filesystem and there is ample kernel cache space. The performance advantage is greater when the DBA extension is available than it is with the PHP port.

See Cdb.php and https://cr.yp.to/cdb.html

Definition at line 36 of file LCStoreCDB.php.

Constructor & Destructor Documentation

◆ __construct()

LCStoreCDB::__construct (   $conf = [])

Definition at line 50 of file LCStoreCDB.php.

References $wgCacheDirectory, directory, and global.

Member Function Documentation

◆ finishWrite()

LCStoreCDB::finishWrite ( )

Finish a write transaction.

Implements LCStore.

Definition at line 113 of file LCStoreCDB.php.

References $e, and writer.

◆ get()

LCStoreCDB::get (   $code,
  $key 
)

Get a value.

Parameters
string$codeLanguage code
string$keyCache key

Implements LCStore.

Definition at line 60 of file LCStoreCDB.php.

References $code, $e, $value, getFileName(), Makefile\open, unserialize(), and wfDebug().

◆ getFileName()

LCStoreCDB::getFileName (   $code)
protected

Definition at line 136 of file LCStoreCDB.php.

References $code.

Referenced by get(), and startWrite().

◆ set()

LCStoreCDB::set (   $key,
  $value 
)

Set a key to a given value.

startWrite() must be called before this is called, and finishWrite() must be called afterwards.

Parameters
string$key
mixed$value

Implements LCStore.

Definition at line 125 of file LCStoreCDB.php.

References $e, $value, serialize(), and writer.

◆ startWrite()

LCStoreCDB::startWrite (   $code)

Start a write transaction.

Parameters
string$codeLanguage code

Implements LCStore.

Definition at line 92 of file LCStoreCDB.php.

References $code, $e, directory, getFileName(), Makefile\open, wfMkdirParents(), and writer.

Member Data Documentation

◆ $currentLang

string LCStoreCDB::$currentLang
private

Current language code.

Definition at line 45 of file LCStoreCDB.php.

◆ $directory

bool string LCStoreCDB::$directory
private

Cache directory.

False if not set

Definition at line 48 of file LCStoreCDB.php.

◆ $readers

Reader [] LCStoreCDB::$readers
private

Definition at line 39 of file LCStoreCDB.php.

◆ $writer

Writer LCStoreCDB::$writer
private

Definition at line 42 of file LCStoreCDB.php.


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