diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Hooks/HookHandler.php')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Hooks/HookHandler.php | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Hooks/HookHandler.php b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Hooks/HookHandler.php new file mode 100644 index 00000000..477220f5 --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Hooks/HookHandler.php @@ -0,0 +1,75 @@ +<?php + +namespace SMW\MediaWiki\Hooks; + +use Psr\Log\LoggerAwareTrait; +use Psr\Log\LoggerInterface; +use SMW\Options; + +/** + * @license GNU GPL v2+ + * @since 2.5 + * + * @author mwjames + */ +class HookHandler { + + use LoggerAwareTrait; + + /** + * @var Options + */ + private $options; + + /** + * @since 2.5 + */ + public function __construct() { + $this->options = new Options(); + } + + /** + * @since 3.0 + * + * @param array $options + */ + public function setOptions( array $options ) { + $this->options = new Options( $options ); + } + + /** + * @since 3.0 + * + * @param string $key + * @param mixed $default + * + * @return mixed + */ + public function getOption( $key, $default = null ) { + + if ( $this->options === null ) { + $this->setOptions( [] ); + } + + return $this->options->safeGet( $key, $default ); + } + + /** + * @since 3.0 + * + * @param string $key + * @param mixed $flag + * + * @return boolean + */ + public function isFlagSet( $key, $flag ) { + return $this->options->isFlagSet( $key, $flag ); + } + + protected function log( $message, $context = [] ) { + if ( $this->logger instanceof LoggerInterface ) { + $this->logger->info( $message, $context ); + } + } + +} |