Rev 185 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
// declare(encoding='UTF-8');
/**
* Classe fournissant des informations au Framework sur l'application.
*
* PHP version 5
*
* @category Debogage
* @package Framework
// Auteur principal :
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
// Autres auteurs :
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @version $Id: Application.php 188 2010-04-29 12:09:17Z jpm $
* @copyright 1999-2009 Tela Botanica (accueil@tela-botanica.org)
*/
class Application {
/**
* Tableau d'informations sur l'application
*/
private static $info = null;
/**
* Chemin de base de l'application
*/
private static $chemin = null;
/**
* 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.
* Elle est appelée automatiquement suite à la définition du chemin de l'application via Application::setChemin().
*/
private static function initialiser() {
// Configuration du gestionnaire d'exception
GestionnaireException::configurer();
// Configuration du gestionnaire de logs
Log::configurer();
}
/**
* 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.
* @param string $chemin_fichier_principal chemin de base
*/
public static function setChemin($chemin_fichier_principal) {
if (self::$chemin === null) {
if (!file_exists($chemin_fichier_principal)) {
trigger_error("Le fichier indiqué n'existe pas. Utilisez __FILE__ dans la méthode set().", E_USER_ERROR);
} else {
self::$chemin = dirname($chemin_fichier_principal).DS;
self::initialiser();
}
} else {
trigger_error("Le chemin de l'application a déjà été enregistré auprès du Framework", E_USER_WARNING);
}
}
/**
* accesseur pour le chemin
* @return string le chemin
*/
public static function getChemin() {
return self::$chemin;
}
/** Le tableau des informations sur l'application possède les clés suivantes :
* - nom : nom de l'application
* - abr : abréviation de l'application
* - encodage : encodage de l'application (ISO-8859-15, UTF-8...)
*
* @param array $info tableau fournissant des informations sur l'application
* @return void
*/
public static function setInfo($info) {
if (self::$info === null) {
self::$info = $info;
} else {
trigger_error("Le informations de l'application ont déjà été enregistrées auprès du Framework", E_USER_WARNING);
}
}
/**
* accesseur pour le tableau d'infos
* @param string $cle la clé à laquelle on veut accéder
*/
public static function getInfo($cle = null) {
if ($cle !== null) {
if (isset(self::$info[$cle])) {
return self::$info[$cle];
}
} else {
return self::$info;
}
}
}