Subversion Repositories Applications.framework

Rev

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