From 8dfa97ff0a6fd4bb506394a65b5653a0547243b3 Mon Sep 17 00:00:00 2001 From: Daniel Friesen Date: Thu, 15 Sep 2011 17:42:17 +0000 Subject: [PATCH] Separate RequestContext.php into separate files inside of context/ Update the AutoLoader too. This is also a follow up to r97161 since I forgot to add the AutoLoader line. --- includes/AutoLoader.php | 12 +- includes/context/ContextSource.php | 124 ++++++++ includes/context/DerivativeContext.php | 212 ++++++++++++++ includes/context/IContextSource.php | 73 +++++ includes/{ => context}/RequestContext.php | 334 ---------------------- 5 files changed, 418 insertions(+), 337 deletions(-) create mode 100644 includes/context/ContextSource.php create mode 100644 includes/context/DerivativeContext.php create mode 100644 includes/context/IContextSource.php rename includes/{ => context}/RequestContext.php (54%) diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index 73ab7e0c32..96b68d9a2e 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -46,7 +46,6 @@ $wgAutoloadLocalClasses = array( 'ConfEditor' => 'includes/ConfEditor.php', 'ConfEditorParseError' => 'includes/ConfEditor.php', 'ConfEditorToken' => 'includes/ConfEditor.php', - 'ContextSource' => 'includes/RequestContext.php', 'Cookie' => 'includes/Cookie.php', 'CookieJar' => 'includes/Cookie.php', 'DeferrableUpdate' => 'includes/DeferredUpdates.php', @@ -116,7 +115,6 @@ $wgAutoloadLocalClasses = array( 'HTMLTextField' => 'includes/HTMLForm.php', 'Http' => 'includes/HttpFunctions.php', 'HttpRequest' => 'includes/HttpFunctions.old.php', - 'IContextSource' => 'includes/RequestContext.php', 'IcuCollation' => 'includes/Collation.php', 'IdentityCollation' => 'includes/Collation.php', 'ImageGallery' => 'includes/ImageGallery.php', @@ -139,6 +137,7 @@ $wgAutoloadLocalClasses = array( 'Linker' => 'includes/Linker.php', 'LinkFilter' => 'includes/LinkFilter.php', 'LinksUpdate' => 'includes/LinksUpdate.php', + 'ListMessageParser' => 'includes/ListMessageParser.php', 'LocalisationCache' => 'includes/LocalisationCache.php', 'LocalisationCache_BulkLoad' => 'includes/LocalisationCache.php', 'LogEventsList' => 'includes/LogEventsList.php', @@ -187,7 +186,6 @@ $wgAutoloadLocalClasses = array( 'RegexlikeReplacer' => 'includes/StringUtils.php', 'ReplacementArray' => 'includes/StringUtils.php', 'Replacer' => 'includes/StringUtils.php', - 'RequestContext' => 'includes/RequestContext.php', 'ReverseChronologicalPager' => 'includes/Pager.php', 'RevisionItemBase' => 'includes/RevisionList.php', 'RevisionListBase' => 'includes/RevisionList.php', @@ -200,6 +198,7 @@ $wgAutoloadLocalClasses = array( 'SiteStatsInit' => 'includes/SiteStats.php', 'SiteStatsUpdate' => 'includes/SiteStats.php', 'Skin' => 'includes/Skin.php', + 'Skin2' => 'includes/Skin2.php', 'SkinLegacy' => 'includes/SkinLegacy.php', 'SkinTemplate' => 'includes/SkinTemplate.php', 'SpecialCreateAccount' => 'includes/SpecialPage.php', @@ -384,6 +383,12 @@ $wgAutoloadLocalClasses = array( 'DatabaseConf' => 'includes/conf/DatabaseConf.php', 'DefaultSettings' => 'includes/conf/DefaultSettings.php', + # includes/context + 'ContextSource' => 'includes/context/ContextSource.php', + 'DerivativeContext' => 'includes/context/DerivativeContext.php', + 'IContextSource' => 'includes/context/IContextSource.php', + 'RequestContext' => 'includes/context/RequestContext.php', + # includes/db 'Blob' => 'includes/db/DatabaseUtility.php', 'ChronologyProtector' => 'includes/db/LBFactory.php', @@ -533,6 +538,7 @@ $wgAutoloadLocalClasses = array( 'JavaScriptMinifier' => 'includes/libs/JavaScriptMinifier.php', 'JSMinPlus' => 'includes/libs/jsminplus.php', 'JSParser' => 'includes/libs/jsminplus.php', + 'simple_html_dom' => 'includes/libs/simple_html_dom.php', # includes/logging 'LogEntry' => 'includes/logging/LogEntry.php', diff --git a/includes/context/ContextSource.php b/includes/context/ContextSource.php new file mode 100644 index 0000000000..3ab9168f2a --- /dev/null +++ b/includes/context/ContextSource.php @@ -0,0 +1,124 @@ +context === null ) { + $class = get_class( $this ); + wfDebug( __METHOD__ . " ($class): called and \$context is null. Using RequestContext::getMain() for sanity\n" ); + $this->context = RequestContext::getMain(); + } + return $this->context; + } + + /** + * Set the IContextSource object + * + * @param $context IContextSource + */ + public function setContext( IContextSource $context ) { + $this->context = $context; + } + + /** + * Get the WebRequest object + * + * @return WebRequest + */ + public function getRequest() { + return $this->getContext()->getRequest(); + } + + /** + * Get the Title object + * + * @return Title + */ + public function getTitle() { + return $this->getContext()->getTitle(); + } + + /** + * Get the OutputPage object + * + * @return OutputPage object + */ + public function getOutput() { + return $this->getContext()->getOutput(); + } + + /** + * Get the User object + * + * @return User + */ + public function getUser() { + return $this->getContext()->getUser(); + } + + /** + * Get the Language object + * + * @return Language + */ + public function getLang() { + return $this->getContext()->getLang(); + } + + /** + * Get the Skin object + * + * @return Skin + */ + public function getSkin() { + return $this->getContext()->getSkin(); + } + + /** + * Get a Message object with context set + * Parameters are the same as wfMessage() + * + * @return Message object + */ + public function msg( /* $args */ ) { + return call_user_func_array( array( $this->getContext(), 'msg' ), func_get_args() ); + } +} + diff --git a/includes/context/DerivativeContext.php b/includes/context/DerivativeContext.php new file mode 100644 index 0000000000..fa0d6fee24 --- /dev/null +++ b/includes/context/DerivativeContext.php @@ -0,0 +1,212 @@ +setContext( $context ); + } + + /** + * Set the WebRequest object + * + * @param $r WebRequest object + */ + public function setRequest( WebRequest $r ) { + $this->request = $r; + } + + /** + * Get the WebRequest object + * + * @return WebRequest + */ + public function getRequest() { + if ( !is_null( $this->request ) ) { + return $this->request; + } else { + return $this->getContext()->getRequest(); + } + } + + /** + * Set the Title object + * + * @param $t Title object + */ + public function setTitle( Title $t ) { + $this->title = $t; + } + + /** + * Get the Title object + * + * @return Title + */ + public function getTitle() { + if ( !is_null( $this->title ) ) { + return $this->title; + } else { + return $this->getContext()->getTitle(); + } + } + + /** + * @param $o OutputPage + */ + public function setOutput( OutputPage $o ) { + $this->output = $o; + } + + /** + * Get the OutputPage object + * + * @return OutputPage object + */ + public function getOutput() { + if ( !is_null( $this->output ) ) { + return $this->output; + } else { + return $this->getContext()->getOutput(); + } + } + + /** + * Set the User object + * + * @param $u User + */ + public function setUser( User $u ) { + $this->user = $u; + } + + /** + * Get the User object + * + * @return User + */ + public function getUser() { + if ( !is_null( $this->user ) ) { + return $this->user; + } else { + return $this->getContext()->getUser(); + } + } + + /** + * Set the Language object + * + * @param $l Mixed Language instance or language code + */ + public function setLang( $l ) { + if ( $l instanceof Language ) { + $this->lang = $l; + } elseif ( is_string( $l ) ) { + $l = self::sanitizeLangCode( $l ); + $obj = Language::factory( $l ); + $this->lang = $obj; + } else { + throw new MWException( __METHOD__ . " was passed an invalid type of data." ); + } + } + + /** + * Get the Language object + * + * @return Language + */ + public function getLang() { + if ( !is_null( $this->lang ) ) { + return $this->lang; + } else { + return $this->getContext()->getLang(); + } + } + + /** + * Set the Skin object + * + * @param $s Skin + */ + public function setSkin( Skin $s ) { + $this->skin = clone $s; + $this->skin->setContext( $this ); + } + + /** + * Get the Skin object + * + * @return Skin + */ + public function getSkin() { + if ( !is_null( $this->skin ) ) { + return $this->skin; + } else { + return $this->getContext()->getSkin(); + } + } + +} + diff --git a/includes/context/IContextSource.php b/includes/context/IContextSource.php new file mode 100644 index 0000000000..12dd1a16e0 --- /dev/null +++ b/includes/context/IContextSource.php @@ -0,0 +1,73 @@ +context === null ) { - $class = get_class( $this ); - wfDebug( __METHOD__ . " ($class): called and \$context is null. Using RequestContext::getMain() for sanity\n" ); - $this->context = RequestContext::getMain(); - } - return $this->context; - } - - /** - * Set the IContextSource object - * - * @param $context IContextSource - */ - public function setContext( IContextSource $context ) { - $this->context = $context; - } - - /** - * Get the WebRequest object - * - * @return WebRequest - */ - public function getRequest() { - return $this->getContext()->getRequest(); - } - - /** - * Get the Title object - * - * @return Title - */ - public function getTitle() { - return $this->getContext()->getTitle(); - } - - /** - * Get the OutputPage object - * - * @return OutputPage object - */ - public function getOutput() { - return $this->getContext()->getOutput(); - } - - /** - * Get the User object - * - * @return User - */ - public function getUser() { - return $this->getContext()->getUser(); - } - - /** - * Get the Language object - * - * @return Language - */ - public function getLang() { - return $this->getContext()->getLang(); - } - - /** - * Get the Skin object - * - * @return Skin - */ - public function getSkin() { - return $this->getContext()->getSkin(); - } - - /** - * Get a Message object with context set - * Parameters are the same as wfMessage() - * - * @return Message object - */ - public function msg( /* $args */ ) { - return call_user_func_array( array( $this->getContext(), 'msg' ), func_get_args() ); - } -} - -/** - * An IContextSource implementation which will inherit context from another source - * but allow individual pieces of context to be changed locally - * eg: A ContextSource that can inherit from the main RequestContext but have - * a different Title instance set on it. - */ -class DerivativeContext extends ContextSource { - - /** - * @var WebRequest - */ - private $request; - - /** - * @var Title - */ - private $title; - - /** - * @var OutputPage - */ - private $output; - - /** - * @var User - */ - private $user; - - /** - * @var Language - */ - private $lang; - - /** - * @var Skin - */ - private $skin; - - /** - * Constructor - * @param $context IContextSource Context to inherit from - */ - public function __construct( IContextSource $context ) { - $this->setContext( $context ); - } - - /** - * Set the WebRequest object - * - * @param $r WebRequest object - */ - public function setRequest( WebRequest $r ) { - $this->request = $r; - } - - /** - * Get the WebRequest object - * - * @return WebRequest - */ - public function getRequest() { - if ( !is_null( $this->request ) ) { - return $this->request; - } else { - return $this->getContext()->getRequest(); - } - } - - /** - * Set the Title object - * - * @param $t Title object - */ - public function setTitle( Title $t ) { - $this->title = $t; - } - - /** - * Get the Title object - * - * @return Title - */ - public function getTitle() { - if ( !is_null( $this->title ) ) { - return $this->title; - } else { - return $this->getContext()->getTitle(); - } - } - - /** - * @param $o OutputPage - */ - public function setOutput( OutputPage $o ) { - $this->output = $o; - } - - /** - * Get the OutputPage object - * - * @return OutputPage object - */ - public function getOutput() { - if ( !is_null( $this->output ) ) { - return $this->output; - } else { - return $this->getContext()->getOutput(); - } - } - - /** - * Set the User object - * - * @param $u User - */ - public function setUser( User $u ) { - $this->user = $u; - } - - /** - * Get the User object - * - * @return User - */ - public function getUser() { - if ( !is_null( $this->user ) ) { - return $this->user; - } else { - return $this->getContext()->getUser(); - } - } - - /** - * Set the Language object - * - * @param $l Mixed Language instance or language code - */ - public function setLang( $l ) { - if ( $l instanceof Language ) { - $this->lang = $l; - } elseif ( is_string( $l ) ) { - $l = self::sanitizeLangCode( $l ); - $obj = Language::factory( $l ); - $this->lang = $obj; - } else { - throw new MWException( __METHOD__ . " was passed an invalid type of data." ); - } - } - - /** - * Get the Language object - * - * @return Language - */ - public function getLang() { - if ( !is_null( $this->lang ) ) { - return $this->lang; - } else { - return $this->getContext()->getLang(); - } - } - - /** - * Set the Skin object - * - * @param $s Skin - */ - public function setSkin( Skin $s ) { - $this->skin = clone $s; - $this->skin->setContext( $this ); - } - - /** - * Get the Skin object - * - * @return Skin - */ - public function getSkin() { - if ( !is_null( $this->skin ) ) { - return $this->skin; - } else { - return $this->getContext()->getSkin(); - } - } - -} - -- 2.20.1