Subversion Repositories Applications.framework

Rev

Blame | Last modification | View Log | RSS feed

<?php
/**
 * 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.
 */

// 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 void 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 .
    */
    $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;
        }        
    }
}
?>