You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SAE4.01_FORMULAIRE/Source/Config/Autoload.php

65 lines
1.6 KiB

<?php
/**
* Permet de charger automatiquement les pages de notre application.
*/
class Autoload
{
/**
* @var null
*/
private static $instance = null;
/**
* @return void
*/
public static function charger()
{
if (null !== self::$instance) {
throw RuntimeException(sprintf('%s is already started', __CLASS__));
}
self::$instance = new self();
if (!spl_autoload_register(array(self::$instance, 'autoloader'), false)) {
throw RuntimeException(sprintf('%s : Could not start the autoload', __CLASS__));
}
}
/**
* @return void
*/
public static function shutDown()
{
if (null !== self::$instance) {
if (!spl_autoload_unregister(array(self::$instance, 'autoloader'))) {
throw RuntimeException('Could not stop the autoload');
}
self::$instance = null;
}
}
/**
* @param $className
* @return void
*/
private static function autoloader($className)
{
$folder = "./";
$className = ltrim($className, '\\');
$fileName = '';
$namespace = '';
if ($lastNsPos = strripos($className, '\\')) {
$namespace = substr($className, 0, $lastNsPos);
$className = substr($className, $lastNsPos + 1);
$fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
}
$fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
require_once $folder.$fileName;
}
}