revert r111028 (attempt to fix bug 34254)
[lhc/web/wiklou.git] / includes / context / ContextSource.php
index 3ab9168..45bd6ff 100644 (file)
@@ -35,9 +35,9 @@ abstract class ContextSource implements IContextSource {
        private $context;
 
        /**
-        * Get the IContextSource object
-        *
-        * @return IContextSource
+        * Get the RequestContext object
+        * @since 1.18
+        * @return RequestContext
         */
        public function getContext() {
                if ( $this->context === null ) {
@@ -51,6 +51,7 @@ abstract class ContextSource implements IContextSource {
        /**
         * Set the IContextSource object
         *
+        * @since 1.18
         * @param $context IContextSource
         */
        public function setContext( IContextSource $context ) {
@@ -60,6 +61,7 @@ abstract class ContextSource implements IContextSource {
        /**
         * Get the WebRequest object
         *
+        * @since 1.18
         * @return WebRequest
         */
        public function getRequest() {
@@ -69,15 +71,42 @@ abstract class ContextSource implements IContextSource {
        /**
         * Get the Title object
         *
+        * @since 1.18
         * @return Title
         */
        public function getTitle() {
                return $this->getContext()->getTitle();
        }
 
+       /**
+        * Check whether a WikiPage object can be get with getWikiPage().
+        * Callers should expect that an exception is thrown from getWikiPage()
+        * if this method returns false.
+        *
+        * @since 1.19
+        * @return bool
+        */
+       public function canUseWikiPage() {
+               return $this->getContext()->canUseWikiPage();
+       }
+
+       /**
+        * Get the WikiPage object.
+        * May throw an exception if there's no Title object set or the Title object
+        * belongs to a special namespace that doesn't have WikiPage, so use first
+        * canUseWikiPage() to check whether this method can be called safely.
+        *
+        * @since 1.19
+        * @return WikiPage
+        */
+       public function getWikiPage() {
+               return $this->getContext()->getWikiPage();
+       }
+
        /**
         * Get the OutputPage object
         *
+        * @since 1.18
         * @return OutputPage object
         */
        public function getOutput() {
@@ -87,6 +116,7 @@ abstract class ContextSource implements IContextSource {
        /**
         * Get the User object
         *
+        * @since 1.18
         * @return User
         */
        public function getUser() {
@@ -96,15 +126,28 @@ abstract class ContextSource implements IContextSource {
        /**
         * Get the Language object
         *
+        * @deprecated 1.19 Use getLanguage instead
         * @return Language
         */
        public function getLang() {
-               return $this->getContext()->getLang();
+               wfDeprecated( __METHOD__, '1.19' );
+               return $this->getLanguage();
+       }
+
+       /**
+        * Get the Language object
+        *
+        * @since 1.19
+        * @return Language
+        */
+       public function getLanguage() {
+               return $this->getContext()->getLanguage();
        }
 
        /**
         * Get the Skin object
         *
+        * @since 1.18
         * @return Skin
         */
        public function getSkin() {
@@ -115,10 +158,13 @@ abstract class ContextSource implements IContextSource {
         * Get a Message object with context set
         * Parameters are the same as wfMessage()
         *
+        * @since 1.18
         * @return Message object
         */
        public function msg( /* $args */ ) {
-               return call_user_func_array( array( $this->getContext(), 'msg' ), func_get_args() );
+               $args = func_get_args();
+               return call_user_func_array( array( $this->getContext(), 'msg' ), $args );
        }
+       
 }