mirror of
https://github.com/moodle/moodle.git
synced 2025-08-09 10:56:56 +02:00
MDL-44357 theme: Allow core to compile LESS in PHP
This commit is contained in:
parent
9b8555fbea
commit
d433cf37cd
68 changed files with 10947 additions and 47 deletions
79
lib/lessphp/Autoloader.php
Normal file
79
lib/lessphp/Autoloader.php
Normal file
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue