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;
}
}
?>