Adding check for lessphp compiler to getLessCompiler()
[lhc/web/wiklou.git] / includes / resourceloader / ResourceLoaderContext.php
index 8994c0e..02744a6 100644 (file)
@@ -41,6 +41,7 @@ class ResourceLoaderContext {
        protected $version;
        protected $hash;
        protected $raw;
+       protected $userObj;
 
        /* Methods */
 
@@ -48,9 +49,7 @@ class ResourceLoaderContext {
         * @param ResourceLoader $resourceLoader
         * @param WebRequest $request
         */
-       public function __construct( $resourceLoader, WebRequest $request ) {
-               global $wgDefaultSkin, $wgResourceLoaderDebug;
-
+       public function __construct( ResourceLoader $resourceLoader, WebRequest $request ) {
                $this->resourceLoader = $resourceLoader;
                $this->request = $request;
 
@@ -61,7 +60,9 @@ class ResourceLoaderContext {
                // Various parameters
                $this->skin = $request->getVal( 'skin' );
                $this->user = $request->getVal( 'user' );
-               $this->debug = $request->getFuzzyBool( 'debug', $wgResourceLoaderDebug );
+               $this->debug = $request->getFuzzyBool(
+                       'debug', $resourceLoader->getConfig()->get( 'ResourceLoaderDebug' )
+               );
                $this->only = $request->getVal( 'only' );
                $this->version = $request->getVal( 'version' );
                $this->raw = $request->getFuzzyBool( 'raw' );
@@ -69,7 +70,7 @@ class ResourceLoaderContext {
                $skinnames = Skin::getSkinNames();
                // If no skin is specified, or we don't recognize the skin, use the default skin
                if ( !$this->skin || !isset( $skinnames[$this->skin] ) ) {
-                       $this->skin = $wgDefaultSkin;
+                       $this->skin = $resourceLoader->getConfig()->get( 'DefaultSkin' );
                }
        }
 
@@ -113,7 +114,9 @@ class ResourceLoaderContext {
         * @return ResourceLoaderContext
         */
        public static function newDummyContext() {
-               return new self( null, new FauxRequest( array() ) );
+               return new self( new ResourceLoader(
+                       ConfigFactory::getDefaultInstance()->makeConfig( 'main' )
+               ), new FauxRequest( array() ) );
        }
 
        /**
@@ -176,6 +179,31 @@ class ResourceLoaderContext {
                return $this->user;
        }
 
+       /**
+        * Get the possibly-cached User object for the specified username
+        *
+        * @since 1.25
+        * @return User|bool false if a valid object cannot be created
+        */
+       public function getUserObj() {
+               if ( $this->userObj === null ) {
+                       $username = $this->getUser();
+                       if ( $username ) {
+                               // Optimize: Avoid loading a new User object if possible
+                               global $wgUser;
+                               if ( is_object( $wgUser ) && $wgUser->getName() === $username ) {
+                                       $this->userObj = $wgUser;
+                               } else {
+                                       $this->userObj = User::newFromName( $username );
+                               }
+                       } else {
+                               $this->userObj = new User; // Anonymous user
+                       }
+               }
+
+               return $this->userObj;
+       }
+
        /**
         * @return bool
         */