]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - vendor/oyejorge/less.php/lib/Less/Autoloader.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / vendor / oyejorge / less.php / lib / Less / Autoloader.php
diff --git a/vendor/oyejorge/less.php/lib/Less/Autoloader.php b/vendor/oyejorge/less.php/lib/Less/Autoloader.php
new file mode 100644 (file)
index 0000000..b6300c0
--- /dev/null
@@ -0,0 +1,79 @@
+<?php
+
+/**
+ * Autoloader
+ *
+ * @package Less
+ * @subpackage autoload
+ */
+class Less_Autoloader {
+
+       /**
+        * Registered flag
+        *
+        * @var boolean
+        */
+       protected static $registered = false;
+
+       /**
+        * Library directory
+        *
+        * @var string
+        */
+       protected static $libDir;
+
+       /**
+        * Register the autoloader in the spl autoloader
+        *
+        * @return void
+        * @throws Exception If there was an error in registration
+        */
+       public static function register(){
+               if( self::$registered ){
+                       return;
+               }
+
+               self::$libDir = dirname(__FILE__);
+
+               if(false === spl_autoload_register(array('Less_Autoloader', 'loadClass'))){
+                       throw new Exception('Unable to register Less_Autoloader::loadClass as an autoloading method.');
+               }
+
+               self::$registered = true;
+       }
+
+       /**
+        * Unregisters the autoloader
+        *
+        * @return void
+        */
+       public static function unregister(){
+               spl_autoload_unregister(array('Less_Autoloader', 'loadClass'));
+               self::$registered = false;
+       }
+
+       /**
+        * Loads the class
+        *
+        * @param string $className The class to load
+        */
+       public static function loadClass($className){
+
+
+               // handle only package classes
+               if(strpos($className, 'Less_') !== 0){
+                       return;
+               }
+
+               $className = substr($className,5);
+               $fileName = self::$libDir . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
+
+               if(file_exists($fileName)){
+                       require $fileName;
+                       return true;
+               }else{
+                       throw new Exception('file not loadable '.$fileName);
+               }
+       }
+
+}
\ No newline at end of file