Subversion Repositories Applications.framework

Rev

Rev 80 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 80 Rev 89
1
<?php
1
<?php
2
/**
2
/**
3
 * Fichier contenant la fonction __autoload
3
 * Fichier contenant la fonction __autoload
4
 * 
4
 * 
5
 * Fichier contenant la fonction de chargement automatique 
5
 * Fichier contenant la fonction de chargement automatique 
6
 * de classes, il doit toujours rester à la racine
6
 * de classes, il doit toujours rester à la racine
7
 *  du framework car il initialise le chemin de 
7
 *  du framework car il initialise le chemin de 
8
 * l'application en se basant sur son propre emplacement.
8
 * l'application en se basant sur son propre emplacement.
9
 * 
9
 * 
10
 * PHP Version 5
10
 * PHP Version 5
11
 * 
11
 * 
12
 * @category  Fichier_De_Fonctions
12
 * @category  Fichier_De_Fonctions
13
 * @package   Framework
13
 * @package   Framework
14
 * @author    aurelien <aurelien@tela-botanica.org>
14
 * @author    aurelien <aurelien@tela-botanica.org>
15
 * @copyright 2009 Tela-Botanica
15
 * @copyright 2009 Tela-Botanica
16
 * @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL  
16
 * @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL  
17
 * @version   SVN: <svn_id> 
17
 * @version   SVN: <svn_id> 
18
 * @link      /doc/framework/ 
18
 * @link      /doc/framework/ 
19
 */
19
 */
20
 
20
 
21
// Redéfinition de la constante DIRECTORY_SEPARATOR
21
// Redéfinition de la constante DIRECTORY_SEPARATOR
22
if (!defined('DS')) { 
22
if (!defined('DS')) { 
23
	define('DS', DIRECTORY_SEPARATOR);  
23
	define('DS', DIRECTORY_SEPARATOR);  
24
}
24
}
25
 
25
 
26
/**
26
/**
27
* La fonction __autoload() charge dynamiquement les 
27
* La fonction __autoload() charge dynamiquement les 
28
* classes trouvées dans le code.
28
* classes trouvées dans le code.
29
*
29
*
30
* Cette fonction est appelée par php5 quand il trouve
30
* Cette fonction est appelée par php5 quand il trouve
31
* une instanciation de classe dans le code.
31
* une instanciation de classe dans le code.
32
*
32
*
33
*@param string $classe nom de la classe appelée.
33
*@param string $classe nom de la classe appelée.
34
*
34
*
35
*@return null le fichier contenant la classe.
35
*@return null le fichier contenant la classe.
36
*/
36
*/
37
function __autoload($classe) { 
37
function __autoload($classe) { 
38
	if (file_exists($fichier_a_tester = dirname(__FILE__).DS.$classe.'.php')) {
38
	if (file_exists($fichier_a_tester = dirname(__FILE__).DS.$classe.'.php')) {
39
		include_once $fichier_a_tester;
39
		include_once $fichier_a_tester;
40
		return null;
40
		return null;
41
	} else {
41
	} else {
42
		/*  les dossiers dans lequels on cherche sont ceux 
42
		/*  les dossiers dans lequels on cherche sont ceux 
43
		*initialisés dans les fichiers de configuration
43
		*initialisés dans les fichiers de configuration
44
		*TODO: faire un tableau qui soit contenu dans le 
44
		*TODO: faire un tableau qui soit contenu dans le 
45
		*fichier de configuration pour que les utilisateurs
45
		*fichier de configuration pour que les utilisateurs
46
		* puissent rajouter les leur et agrandir les possibilités.
46
		* puissent rajouter les leur et agrandir les possibilités.
47
		*/
47
		*/
48
		$dossiers_classes = array(	Config::get('dossier_controleurs'),
48
		$dossiers_classes = array(	Config::get('dossier_controleurs'),
49
									Config::get('fw_dossier_modeles'));
49
									Config::get('dossier_modeles'));
50
		
50
		
51
		foreach ($dossiers_classes as $chemin) {
51
		foreach ($dossiers_classes as $chemin) {
52
			if (file_exists($fichier_a_tester = $chemin.$classe.'.php')) {
52
			if (file_exists($fichier_a_tester = $chemin.$classe.'.php')) {
53
				include_once $fichier_a_tester;
53
				include_once $fichier_a_tester;
54
				return null; 
54
				return null; 
55
			}
55
			}
56
		}
56
		}
57
	}
57
	}
58
}
58
}
59
?>
59
?>