Rev 37 | Rev 39 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
/**
* Fichier contenant la fonction __autoload
*
* Fichier contenant la fonction de chargement automatique
* de classes, il doit toujours rester à la racine
* du framework car il initialise le chemin de
* l'application en se basant sur son propre emplacement.
*
* PHP Version 5
*
* @category PHP
* @package Framework
* @author aurelien <aurelien@tela-botanica.org>
* @copyright 2009 Tela-Botanica
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @version SVN: <svn_id>
* @link /doc/framework/
*/
// on définit le chemin de base de l'application
if (!defined('CHEMIN_APPLI')) {
define('CHEMIN_APPLI', dirname(__FILE__).DIRECTORY_SEPARATOR);
}
// appel des deux fichiers de configuration
require_once 'configuration/config.inc.php';
require_once 'configuration/config_chemin.inc.php';
/**
* La fonction __autoload() charge dynamiquement les
* classes trouvées dans le code.
*
* Cette fonction est appelée par php5 quand il trouve
* une instanciation de classe dans le code.
*
*@param string $classe nom de la classe appelée.
*
*@return null le fichier contenant la classe .
*/
function __autoload($classe)
{
/* les dossiers dans lequels on cherche sont ceux
*initialisés dans les fichiers de configuration
*TODO: faire un tableau qui soit contenu dans le
*fichier de configuration pour que les utilisateurs
* puissent rajouter les leur et agrandir les possibilités.
*/
$dossiers_classes = array(CHEMIN_BIBLIO.DIRECTORY_SEPARATOR,
DOSSIER_CONTROLEURS.DIRECTORY_SEPARATOR,
DOSSIER_MODELES.DIRECTORY_SEPARATOR);
foreach ($dossiers_classes as $chemin) {
if (file_exists($fichier_a_tester = $chemin.$classe.'.php')) {
include_once $fichier_a_tester;
return null;
}
}
}
?>