Subversion Repositories Applications.framework

Rev

Rev 74 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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