12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?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);
- }
- }
- }
|