1,13 → 1,13 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe de base du Framework : |
* - fournissant des infos sur l'application, |
* Classe de base du Framework : |
* - fournissant des infos sur l'application, |
* - paramétrant l'environnement de l'appli et du framework, |
* - réalisant des traitements sur les variables globales ($_GET, $_POST, $_COOKIE...) |
* |
* |
* Cette classe contient la fonction de chargement automatique de classes. |
* Ce fichier doit toujours rester à la racine du framework car il initialise le chemin |
* Ce fichier doit toujours rester à la racine du framework car il initialise le chemin |
* de l'application en se basant sur son propre emplacement. |
* |
* @category PHP 5.2 |
24,20 → 24,20 |
|
/** Variable statique indiquant que les tableaux _GET et _POST ont déjà été encodé au format de l'appli. */ |
private static $encodage = false; |
|
|
/** Tableau d'informations sur l'application */ |
private static $info = null; |
|
|
/** Chemin de base de l'application */ |
private static $chemin = null; |
|
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/ |
private static $parametres_obligatoires = array('chemin_controleurs', 'chemin_modeles', 'chemin_bibliotheque', |
private static $parametres_obligatoires = array('chemin_controleurs', 'chemin_modeles', 'chemin_bibliotheque', |
'url_arg_separateur_entree', 'url_arg_separateur_sortie', |
'encodage_sortie', 'encodage_appli'); |
|
|
/** |
* Initialise l'environnement nécessaire au Framework : constantes globales, méthodeles autoload, séparateur d'arguments |
* Initialise l'environnement nécessaire au Framework : constantes globales, méthodeles autoload, séparateur d'arguments |
* d'url. |
* Cette méthode est appelée automatiquement suite à la définition du chemin de l'application via Application::setChemin(). |
*/ |
45,7 → 45,7 |
self::enregistrerMethodesAutoload(); |
self::initialiserUrl(); |
} |
|
|
/** |
* Initialise différentes classes du Framework nécessaires pour le fonctionnement de l'application. |
* Ces classes sont ensuites controlées via les fichiers de config.ini. |
53,10 → 53,10 |
*/ |
private static function initialiserFramework() { |
GestionnaireException::configurer(); |
//Log::configurer(); |
//Log::configurer(); |
self::verifierEtReencoderTableauRequete(); |
} |
|
|
/** |
* Redéfinit des constantes globales utiles pour le Framework et les applis. |
*/ |
70,34 → 70,24 |
define('PS', PATH_SEPARATOR); |
} |
} |
|
private static function definirCheminAppli($chemin) { |
if (is_file($chemin)) { |
self::$chemin = dirname($chemin).DS; |
} else if (is_dir($chemin)) { |
self::$chemin = $chemin; |
} else { |
throw new Exception("Le chemin indiqué '$chemin' n'est ni un fichier ni un dossier."); |
} |
} |
|
|
private static function enregistrerMethodesAutoload() { |
spl_autoload_register(array(get_class(), 'autoloadFw')); |
|
|
// Vérification des paramètres de configuration obligatoire pour assurer le fonctionnement du Framework |
Config::verifierPresenceParametres(self::$parametres_obligatoires); |
|
|
// Initialisation du gestionnaire d'erreur avant toute chose |
GestionnaireException::initialiser(); |
|
|
spl_autoload_register(array(get_class(), 'autoloadAppliDefaut')); |
|
|
// Autoload défini par l'application |
if (function_exists('__autoload')) { |
spl_autoload_register('__autoload'); |
} |
} |
|
|
/** |
* Autoload pour le Framework. |
*/ |
112,7 → 102,7 |
} |
} |
} |
|
|
/** |
* Autoload par défaut pour l'application |
*/ |
120,7 → 110,7 |
$dossiers_classes = array( Config::get('chemin_controleurs'), |
Config::get('chemin_modeles'), |
Config::get('chemin_bibliotheque')); |
|
|
foreach ($dossiers_classes as $chemin) { |
$fichier_a_tester = $chemin.$nom_classe.'.php'; |
if (file_exists($fichier_a_tester)) { |
129,7 → 119,7 |
} |
} |
} |
|
|
/** |
* Initialise le format des urls. |
*/ |
137,7 → 127,7 |
ini_set('arg_separator.input', Config::get('furl_arg_separateur_entree')); |
ini_set('arg_separator.output', Config::get('url_arg_separateur_sortie')); |
} |
|
|
/** |
* Permet d'indiquer le chemin de base de l'Application. |
* Cette méthode doit obligatoirement être utilisée par l'application pour que le Framework fonctionne correctement. |
149,7 → 139,7 |
trigger_error("Le fichier indiqué n'existe pas. Utilisez __FILE__ dans la méthode setCheminAppli().", E_USER_ERROR); |
} else { |
self::definirConstantesGlobales(); |
self::definirCheminAppli($chemin_fichier_principal); |
self::$chemin = dirname($chemin_fichier_principal).DS; |
self::initialiserEnvironnement(); |
self::initialiserFramework(); |
} |
195,7 → 185,7 |
return self::$info; |
} |
} |
|
|
/** |
* Procédure vérifiant l'encodage des tableaux $_GET et $_POST et les transcodant dans l'encodage de l'application |
*/ |
203,14 → 193,14 |
if (self::$encodage == false && Config::get('encodage_sortie') != Config::get('encodage_appli')) { |
$_POST = self::encoderTableau($_POST, Config::get('encodage_appli'), Config::get('encodage_sortie')); |
$_GET = self::encoderTableau($_GET, Config::get('encodage_appli'), Config::get('encodage_sortie')); |
|
|
// Traitement des magic quotes |
self::verifierEtTraiterSlashTableauRequete(); |
|
|
self::$encodage = true; |
} |
} |
|
|
/** |
* Procédure vérifiant l'activation des magic quotes et remplacant les slash dans les tableaux de requete |
*/ |