* @copyright Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org) * @license GNU-GPL-v3 * @license CECILL-v2 */ 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; } } }