Subversion Repositories Applications.framework

Rev

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

Rev 48 Rev 49
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  PHP
12
 * @category  PHP
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
// on définit le chemin de base de l'application
21
// on définit le chemin de base de l'application
22
if (!defined('CHEMIN_APPLI')) { 
22
if (!defined('CHEMIN_APPLI')) { 
23
    define('CHEMIN_APPLI', dirname(__FILE__).DIRECTORY_SEPARATOR);  
23
    define('CHEMIN_APPLI', dirname(__FILE__).DIRECTORY_SEPARATOR);  
24
}
24
}
25
 
25
 
26
 
26
 
27
// appel des deux fichiers de configuration
27
// appel des deux fichiers de configuration
28
require_once 'configuration/config.inc.php';
28
require_once 'configuration/config.inc.php';
29
require_once 'configuration/config_chemin.inc.php';
29
require_once 'configuration/config_chemin.inc.php';
30
 
30
 
31
/**
31
/**
32
* La fonction __autoload() charge dynamiquement les 
32
* La fonction __autoload() charge dynamiquement les 
33
* classes trouvées dans le code.
33
* classes trouvées dans le code.
34
*
34
*
35
* Cette fonction est appelée par php5 quand il trouve
35
* Cette fonction est appelée par php5 quand il trouve
36
*  une instanciation de classe dans le code.
36
*  une instanciation de classe dans le code.
37
*
37
*
38
*@param string $classe nom de la classe appelée.
38
*@param string $classe nom de la classe appelée.
39
*
39
*
40
*@return null le fichier contenant la classe .
40
*@return null le fichier contenant la classe .
41
*/
41
*/
42
function __autoload($classe) {
42
function __autoload($classe) {
43
   
43
   
44
    /* les dossiers dans lequels on cherche sont ceux 
44
    /* les dossiers dans lequels on cherche sont ceux 
45
    *initialisés dans les fichiers de configuration
45
    *initialisés dans les fichiers de configuration
46
    *TODO: faire un tableau qui soit contenu dans le 
46
    *TODO: faire un tableau qui soit contenu dans le 
47
    *fichier de configuration pour que les utilisateurs
47
    *fichier de configuration pour que les utilisateurs
48
    * puissent rajouter les leur et agrandir les possibilités.
48
    * puissent rajouter les leur et agrandir les possibilités.
49
    */
49
    */
50
    
50
    
51
    
51
    
52
    $dossiers_classes = array(CHEMIN_BIBLIO.DIRECTORY_SEPARATOR,
52
    $dossiers_classes = array(CHEMIN_BIBLIO.DIRECTORY_SEPARATOR,
53
                                DOSSIER_CONTROLEURS.DIRECTORY_SEPARATOR,
53
                                DOSSIER_CONTROLEURS.DIRECTORY_SEPARATOR,
54
                                DOSSIER_MODELES.DIRECTORY_SEPARATOR);
54
                                DOSSIER_MODELES.DIRECTORY_SEPARATOR);
55
    
55
    
56
    foreach ($dossiers_classes as $chemin) {
56
    foreach ($dossiers_classes as $chemin) {
57
        if (file_exists($fichier_a_tester = $chemin.$classe.'.php')) {
57
        if (file_exists($fichier_a_tester = $chemin.$classe.'.php')) {
58
            include_once $fichier_a_tester;
58
            include_once $fichier_a_tester;
59
            return null*UXX
59
            return null*U
60
                
60
                
61
    }
61
    }
62
}
62
}
63
?>
63
?>