Subversion Repositories Sites.tela-botanica.org

Rev

Rev 376 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?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 le nom de la classe appelée.
*@return void le fichier contenant la classe doit être inclu par la fonction.
*/
function __autoload($classe)
{
        // Gestion des classes de la bibliothèque et du module "ef_commun"
        foreach ($GLOBALS['_SCRIPT_']['chemins_classes'] as $chemin) {
                if (file_exists($fichier_a_tester = $chemin.$classe.'.class.php')) {
                        //echo $fichier."<br>";
                        require_once $fichier_a_tester;
                        return null;
                }
        }
        
        // Gestion des fichiers présents dans l'include_path (PEAR)
        $fichier = $classe.'.php';
        if (substr_count($classe, '_') > 0) {
                // Gestion des classes PEAR
                $tab_chemin = explode('_', $classe);
                $fichier = '';
                $nbre_niveau = count($tab_chemin);
                for ($i = 0; $i < $nbre_niveau; $i++) {
                        if (($nbre_niveau-1) == $i) {
                                $fichier .= $tab_chemin[$i].'.php';
                        } else {
                                $fichier .= $tab_chemin[$i].DIRECTORY_SEPARATOR;
                        }
                }
        }
        
        if (file_exists($fichier)) {
                include_once $fichier;
                return null;
        }
}
?>