Bsitu has uploaded a new change for review.
https://gerrit.wikimedia.org/r/154387
Change subject: [5] Add revision local cache holder object
......................................................................
[5] Add revision local cache holder object
Change-Id: I85f68b3ca269c711a8a177e013bd8eba38833444
---
M Echo.php
A includes/cache/RevisionLocalCache.php
2 files changed, 57 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Echo
refs/changes/87/154387/1
diff --git a/Echo.php b/Echo.php
index ae9346e..3d1a68c 100644
--- a/Echo.php
+++ b/Echo.php
@@ -70,6 +70,7 @@
// Local caches
$wgAutoloadClasses['EchoLocalCache'] = $dir . 'includes/cache/LocalCache.php';
$wgAutoloadClasses['EchoTitleLocalCache'] = $dir .
'includes/cache/TitleLocalCache.php';
+$wgAutoloadClasses['EchoRevisionLocalCache'] = $dir .
'includes/cache/RevisionLocalCache.php';
// Output formatters
$wgAutoloadClasses['EchoDataOutputFormatter'] = $dir .
'includes/DataOutputFormatter.php';
diff --git a/includes/cache/RevisionLocalCache.php
b/includes/cache/RevisionLocalCache.php
new file mode 100644
index 0000000..a584ffd
--- /dev/null
+++ b/includes/cache/RevisionLocalCache.php
@@ -0,0 +1,56 @@
+<?php
+
+class EchoRevisionLocalCache extends EchoLocalCache {
+
+ /**
+ * @var EchoRevisionLocalCache
+ */
+ private static $instance;
+
+ /**
+ * Use EchoRevisionLocalCache::create()
+ */
+ private function __construct() {}
+
+ /**
+ * Create a EchoRevisionLocalCache object
+ * @return EchoRevisionLocalCache
+ */
+ public static function create() {
+ if ( !self::$instance ) {
+ self::$instance = new EchoRevisionLocalCache();
+ }
+ return self::$instance;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected function resolve() {
+ if ( $this->lookups ) {
+ // @Todo Make a core Revision::newFromIds()
+ $dbr = wfGetDB( DB_SLAVE );
+ $fields = array_merge(
+ Revision::selectFields(),
+ Revision::selectPageFields(),
+ Revision::selectUserFields()
+ );
+ $res = $dbr->select(
+ array( 'revision', 'page', 'user' ),
+ $fields,
+ array( 'rev_id' => $this->lookups ),
+ __METHOD__,
+ $options,
+ array( 'page' => Revision::pageJoinCond(),
'user' => Revision::userJoinCond() )
+ );
+ if ( $res ) {
+ foreach ( $res as $row ) {
+ $this->targets[$row->rev_id] = new
Revision( $row );
+ }
+ }
+
+ $this->lookups = array();
+ }
+ }
+
+}
--
To view, visit https://gerrit.wikimedia.org/r/154387
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I85f68b3ca269c711a8a177e013bd8eba38833444
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Echo
Gerrit-Branch: master
Gerrit-Owner: Bsitu <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits