Subversion Repositories Applications.framework

Compare Revisions

Ignore whitespace Rev 91 → Rev 92

/trunk/framework/autoload.inc.php
22,38 → 22,37
if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
// Redéfinition de la constante PATH_SEPARATOR
if (!defined('PS')) {
define('PS', PATH_SEPARATOR);
}
 
/**
* La fonction __autoload() charge dynamiquement les
* classes trouvées dans le code.
*
* Cette fonction est appelée par php5 quand il trouve
* une instanciation de classe dans le code.
*
*@param string $classe nom de la classe appelée.
*
*@return null le fichier contenant la classe.
*/
function __autoload($classe) {
if (file_exists($fichier_a_tester = dirname(__FILE__).DS.$classe.'.php')) {
include_once $fichier_a_tester;
function autoloadFw($nom_classe_fw) {
$fichier_a_inclure = dirname(__FILE__).DS.$nom_classe_fw.'.php';
if (file_exists($fichier_a_inclure)) {
include_once $fichier_a_inclure;
return null;
} else {
/* les dossiers dans lequels on cherche sont ceux
*initialisés dans les fichiers de configuration
*TODO: faire un tableau qui soit contenu dans le
*fichier de configuration pour que les utilisateurs
* puissent rajouter les leur et agrandir les possibilités.
*/
$dossiers_classes = array( Config::get('dossier_controleurs'),
Config::get('dossier_modeles'));
foreach ($dossiers_classes as $chemin) {
if (file_exists($fichier_a_tester = $chemin.$classe.'.php')) {
include_once $fichier_a_tester;
return null;
}
}
}
spl_autoload_register('autoloadFw');
 
function autoloadAppliDefaut($nom_classe) {
$dossiers_classes = array( Config::get('dossier_controleurs'),
Config::get('dossier_modeles'),
Config::get('dossier_bibliotheque'));
foreach ($dossiers_classes as $chemin) {
$fichier_a_tester = $chemin.$nom_classe.'.php';
if (file_exists($fichier_a_tester)) {
include_once $fichier_a_tester;
return null;
}
}
}
spl_autoload_register('autoloadAppliDefaut');
 
if (function_exists('__autoload')) {
spl_autoload_register('__autoload');
}
 
?>