80 lines
1.6 KiB
PHP
Executable File
80 lines
1.6 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Class Autoloader
|
|
* Loads a class on call
|
|
*/
|
|
class Autoloader
|
|
{
|
|
|
|
/**
|
|
* All directorys to search for classes
|
|
* You can add directorys if you want
|
|
* @var static $directorys
|
|
*
|
|
**/
|
|
private static $directorys = array('classes', 'controller', 'model', 'views');
|
|
|
|
/**
|
|
* Load's the autoloader
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
if ( !spl_autoload_register( array( $this, 'load_class' ) ) )
|
|
{
|
|
die('A fatal error has occurred.');
|
|
}
|
|
|
|
} # function __construct()
|
|
|
|
/**
|
|
* register the autoloader
|
|
*
|
|
* @return void
|
|
*/
|
|
public static function register()
|
|
{
|
|
new Autoloader();
|
|
|
|
} # function register()
|
|
|
|
|
|
/**
|
|
* Loads a class
|
|
*
|
|
* @param string $a_class_name Klassen-Name
|
|
* @return void
|
|
*
|
|
*/
|
|
public function load_class( $a_class_name )
|
|
{
|
|
foreach ( self::$directorys as $folder )
|
|
{
|
|
$file = __DIR__ . '/../' . $folder . '/' . $a_class_name . '.class.inc.php';
|
|
|
|
if ( file_exists( $file ) )
|
|
{
|
|
require_once $file;
|
|
}
|
|
else
|
|
{
|
|
$file = __DIR__ . '/../' . $folder . '/' . mb_strtolower( $a_class_name ) . '.class.inc.php';
|
|
if ( file_exists( $file ) )
|
|
{
|
|
require_once $file;
|
|
}
|
|
else
|
|
{
|
|
$file = __DIR__ . '/../' . $folder . '/' . ucfirst( $a_class_name ) . '.class.inc.php';
|
|
if ( file_exists( $file ) )
|
|
{
|
|
require_once $file;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
} # function load_class(...)
|
|
} # class
|