MediaWiki REL1_33
FileJournal.php
Go to the documentation of this file.
1<?php
37abstract class FileJournal {
39 protected $backend;
40
42 protected $ttlDays;
43
50 protected function __construct( array $config ) {
51 $this->ttlDays = $config['ttlDays'] ?? false;
52 }
53
62 final public static function factory( array $config, $backend ) {
63 $class = $config['class'];
64 $jrn = new $class( $config );
65 if ( !$jrn instanceof self ) {
66 throw new InvalidArgumentException( "Class given is not an instance of FileJournal." );
67 }
68 $jrn->backend = $backend;
69
70 return $jrn;
71 }
72
78 final public function getTimestampedUUID() {
79 $s = '';
80 for ( $i = 0; $i < 5; $i++ ) {
81 $s .= mt_rand( 0, 2147483647 );
82 }
83 $s = Wikimedia\base_convert( sha1( $s ), 16, 36, 31 );
84
85 return substr( Wikimedia\base_convert( wfTimestamp( TS_MW ), 10, 36, 9 ) . $s, 0, 31 );
86 }
87
99 final public function logChangeBatch( array $entries, $batchId ) {
100 if ( $entries === [] ) {
101 return StatusValue::newGood();
102 }
103
104 return $this->doLogChangeBatch( $entries, $batchId );
105 }
106
114 abstract protected function doLogChangeBatch( array $entries, $batchId );
115
121 final public function getCurrentPosition() {
122 return $this->doGetCurrentPosition();
123 }
124
129 abstract protected function doGetCurrentPosition();
130
137 final public function getPositionAtTime( $time ) {
138 return $this->doGetPositionAtTime( $time );
139 }
140
146 abstract protected function doGetPositionAtTime( $time );
147
165 final public function getChangeEntries( $start = null, $limit = 0, &$next = null ) {
166 $entries = $this->doGetChangeEntries( $start, $limit ? $limit + 1 : 0 );
167 if ( $limit && count( $entries ) > $limit ) {
168 $last = array_pop( $entries ); // remove the extra entry
169 $next = $last['id']; // update for next call
170 } else {
171 $next = null; // end of list
172 }
173
174 return $entries;
175 }
176
183 abstract protected function doGetChangeEntries( $start, $limit );
184
190 final public function purgeOldLogs() {
191 return $this->doPurgeOldLogs();
192 }
193
198 abstract protected function doPurgeOldLogs();
199}
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two and(2) offer you this license which gives you legal permission to copy
wfTimestamp( $outputtype=TS_UNIX, $ts=0)
Get a timestamp string in one of various formats.
Class for handling file operation journaling.
logChangeBatch(array $entries, $batchId)
Log changes made by a batch file operation.
__construct(array $config)
Construct a new instance from configuration.
getPositionAtTime( $time)
Get the position ID of the latest journal entry at some point in time.
getCurrentPosition()
Get the position ID of the latest journal entry.
doGetCurrentPosition()
purgeOldLogs()
Purge any old log entries.
doGetChangeEntries( $start, $limit)
string $backend
getTimestampedUUID()
Get a statistically unique ID string.
getChangeEntries( $start=null, $limit=0, &$next=null)
Get an array of file change log entries.
static factory(array $config, $backend)
Create an appropriate FileJournal object from config.
doLogChangeBatch(array $entries, $batchId)
doGetPositionAtTime( $time)
see documentation in includes Linker php for Linker::makeImageLink & $time
Definition hooks.txt:1802
The wiki should then use memcached to cache various data To use multiple just add more items to the array To increase the weight of a make its entry a array("192.168.0.1:11211", 2))
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Ge...
$last