jenkins-bot has submitted this change and it was merged. Change subject: LinkCache singleton can now be altered ......................................................................
LinkCache singleton can now be altered This patch adds the ability to destroy the LinkCache singleton or to replace the instance with a different object. Note the $instance static variable is now at the class level instead of at the method level. Change-Id: Ib110ad061868834a52a6bac651976b3ffab4a6ce --- M RELEASE-NOTES-1.22 M includes/cache/LinkCache.php 2 files changed, 32 insertions(+), 5 deletions(-) Approvals: IAlex: Looks good to me, approved jenkins-bot: Verified diff --git a/RELEASE-NOTES-1.22 b/RELEASE-NOTES-1.22 index c101bc9..68624eb 100644 --- a/RELEASE-NOTES-1.22 +++ b/RELEASE-NOTES-1.22 @@ -97,6 +97,8 @@ http://www.oracle-base.com/articles/11g/database-resident-connection-pool-11gr1.php * Add a new parameter $patrolFooterShown to hook ArticleViewFooter so the hook handlers can take further action based on the status of the patrol footer +* LinkCache singleton can now be altered or cleared, letting one to specify + another instance that does not rely on a database backend. === Bug fixes in 1.22 === * Disable Special:PasswordReset when $wgEnableEmail is false. Previously one diff --git a/includes/cache/LinkCache.php b/includes/cache/LinkCache.php index 31982e0..6ac7e7a 100644 --- a/includes/cache/LinkCache.php +++ b/includes/cache/LinkCache.php @@ -37,16 +37,41 @@ private $mForUpdate = false; /** - * Get an instance of this class + * @var LinkCache + */ + protected static $instance; + + /** + * Get an instance of this class. * * @return LinkCache */ static function &singleton() { - static $instance; - if ( !isset( $instance ) ) { - $instance = new LinkCache; + if ( self::$instance ) { + return self::$instance; } - return $instance; + self::$instance = new LinkCache; + return self::$instance; + } + + /** + * Destroy the singleton instance, a new one will be created next time + * singleton() is called. + * @since 1.22 + */ + static function destroySingleton() { + self::$instance = null; + } + + /** + * Set the singleton instance to a given object. + * Since we do not have an interface for LinkCache, you have to be sure the + * given object implements all the LinkCache public methods. + * @param LinkCache $instance + * @since 1.22 + */ + static function setSingleton( LinkCache $instance ) { + self::$instance = $instance; } /** -- To view, visit https://gerrit.wikimedia.org/r/64564 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ib110ad061868834a52a6bac651976b3ffab4a6ce Gerrit-PatchSet: 4 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Hashar <[email protected]> Gerrit-Reviewer: Aaron Schulz <[email protected]> Gerrit-Reviewer: Hashar <[email protected]> Gerrit-Reviewer: IAlex <[email protected]> Gerrit-Reviewer: Nikerabbit <[email protected]> Gerrit-Reviewer: Platonides <[email protected]> Gerrit-Reviewer: jenkins-bot _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
