Subversion Repositories Sites.tela-botanica.org

Rev

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

Rev Author Line No. Line
376 jpm 1
<?php
2
/**
3
* La fonction __autoload() charge dynamiquement les classes trouvées dans le code.
4
*
5
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code.
6
*
7
*@param string le nom de la classe appelée.
8
*@return void le fichier contenant la classe doit être inclu par la fonction.
9
*/
10
function __autoload($classe)
11
{
12
	// Gestion des classes de la bibliothèque et du module "ef_commun"
13
	foreach ($GLOBALS['_SCRIPT_']['chemins_classes'] as $chemin) {
14
		if (file_exists($fichier_a_tester = $chemin.$classe.'.class.php')) {
15
			//echo $fichier."<br>";
16
			require_once $fichier_a_tester;
17
			return null;
18
		}
19
	}
20
 
21
	// Gestion des fichiers présents dans l'include_path (PEAR)
22
	$fichier = $classe.'.php';
23
	if (substr_count($classe, '_') > 0) {
24
		// Gestion des classes PEAR
25
		$tab_chemin = explode('_', $classe);
26
		$fichier = '';
27
		$nbre_niveau = count($tab_chemin);
28
		for ($i = 0; $i < $nbre_niveau; $i++) {
29
			if (($nbre_niveau-1) == $i) {
30
				$fichier .= $tab_chemin[$i].'.php';
31
			} else {
32
				$fichier .= $tab_chemin[$i].DIRECTORY_SEPARATOR;
33
			}
34
		}
35
	}
36
 
380 jpm 37
	if (file_exists($fichier)) {
38
		include_once $fichier;
376 jpm 39
		return null;
40
	}
41
}
42
?>