Subversion Repositories Applications.framework

Rev

Rev 74 | Go to most recent revision | Blame | 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  Fichier_De_Fonctions
 * @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/ 
 */

// Redéfinition de la constante DIRECTORY_SEPARATOR
if (!defined('DS')) { 
        define('DS', DIRECTORY_SEPARATOR);  
}

// Appel du fichier de configuration du framework
require_once dirname(__FILE__).DS.'config.inc.php';

// Chargement automatique du fichier de configuration de l'application
require_once CHEMIN_APPLI.'config.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(      DOSSIER_BIBLIO,
                                                                DOSSIER_CONTROLEURS,
                                                                DOSSIER_MODELES);
        
        foreach ($dossiers_classes as $chemin) {
                if (file_exists($fichier_a_tester = $chemin.$classe.'.php')) {
                        include_once $fichier_a_tester;
                        return null; 
                }
        }
}
?>