diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Connection/TransactionProfiler.php')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Connection/TransactionProfiler.php | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Connection/TransactionProfiler.php b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Connection/TransactionProfiler.php new file mode 100644 index 00000000..b5e45508 --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Connection/TransactionProfiler.php @@ -0,0 +1,58 @@ +<?php + +namespace SMW\MediaWiki\Connection; + +/** + * @license GNU GPL v2+ + * @since 3.0 + * + * @author mwjames + */ +class TransactionProfiler { + + /** + * @var TransactionProfiler + */ + private $transactionProfiler; + + /** + * @var boolean + */ + private $silenceTransactionProfiler = false; + + /** + * @since 3.0 + * + * @param TransactionProfiler|null $transactionProfiler + */ + public function __construct( $transactionProfiler = null ) { + + // MW 1.28+ + if ( method_exists( $transactionProfiler, 'setSilenced' ) ) { + $this->transactionProfiler = $transactionProfiler; + } + } + + /** + * @since 3.0 + */ + public function silenceTransactionProfiler() { + $this->silenceTransactionProfiler = true; + } + + /** + * @since 3.0 + * + * @param boolean $state + */ + public function setSilenced( $state ) { + + if ( $this->transactionProfiler === null || $this->silenceTransactionProfiler === false ) { + return; + } + + // @see https://gerrit.wikimedia.org/r/c/mediawiki/core/+/462130/3/includes/objectcache/SqlBagOStuff.php#836 + return $this->transactionProfiler->setSilenced( $state ); + } + +} |