Subversion Repositories Applications.framework

Compare Revisions

Ignore whitespace Rev 391 → Rev 392

/trunk/framework/Framework.php
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,41 → 53,41
*/
private static function initialiserFramework() {
GestionnaireException::configurer();
//Log::configurer();
//Log::configurer();
self::verifierEtReencoderTableauRequete();
}
 
/**
* Redéfinit des constantes globales utiles pour le Framework et les applis.
*/
private static function definirConstantesGlobales() {
/** Redéfinition de la constante DIRECTORY_SEPARATOR en version abrégée DS */
if (!defined('DS')) {
/** Redéfinition de la constante DIRECTORY_SEPARATOR en version abrégée DS */
define('DS', DIRECTORY_SEPARATOR);
}
/** Redéfinition de la constante PATH_SEPARATOR en version abrégée PS */
if (!defined('PS')) {
/** Redéfinition de la constante PATH_SEPARATOR en version abrégée PS */
define('PS', PATH_SEPARATOR);
}
}
 
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.
*/
104,7 → 104,7
}
}
}
 
/**
* Autoload par défaut pour l'application
*/
112,7 → 112,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)) {
121,7 → 121,7
}
}
}
 
/**
* Initialise le format des urls.
*/
129,7 → 129,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.
187,7 → 187,7
return self::$info;
}
}
 
/**
* Procédure vérifiant l'encodage des tableaux $_GET et $_POST et les transcodant dans l'encodage de l'application
*/
195,14 → 195,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
*/