Hey,
Je me suis bricolé un module simple avec 2 méthodes: database et session
Sur ce module j'ai ajouté un fichier de config ou je set dedans toutes les infos du genre nom du site, url, mail de contact, version etc...
Un truc du genre (un peu a l'arrache, et zoooouu !)
class Hoathis_Application implements Hoa_Framework_Parameterizable {
// paramètres
private $_parameters = null;
private $options = array();
// objects
private $_db = null;
/**
* Constructeur
*/
function __construct( $options = null ) {
if ($options!==NULL)
$this->options = explode(' ', trim(strtolower($options)));
$this->_parameters = new Hoa_Framework_Parameter(
$this,
array(
'mode' => 'debug'
),
array(
'session.name' => 'SESSION',
'session.lifetime' => '68400',
'locale.encoding' => 'utf-8',
'locale.lifetime' => 'GMT+1',
'locale.timezone' => 'GMT+1',
'locale.region' => 'GMT+1',
'locale.departement' => 'd/m/Y',
'locale.date' => 'H:i:s',
'locale.time' => 'd/m/Y H:i:s',
'application.name' => '',
'application.description' => '',
'application.version' => '',
'compagny.name' => '',
'compagny.description' => '',
'compagny.url' => '',
'host.default.domain' => '',
'host.default.path' => '',
'host.default.directory' => '',
'host.public.domain' => '',
'host.public.path' => '',
'host.public.directory' => ''
'ta config au choix...' => 'bla bla bla...'
)
);
// Par exemple c'est le genre d'info a reprendre du fichier de config Hoathis_Application.json...
// Mais bon, peu être que Hywan va bientot (^^) nous ajouter la config des locales dans un fichier Hoa_Locale.json
// A voir...
setlocale(LC_TIME, 'fr_FR.utf8', 'fra');
// ici on traite suivant un mode (production, dev, etc..) quoi faire
// par exemple, page de maintenance, traitement des remontées d'erreurs, au choix....
$this->loadMode();
if (!in_array('nosession', $this->options)) {
$this->loadSession();
}
if (!in_array('nodatabase', $this->options)) {
$db = Hoa_Database_Dal::getInstance('default');
$db->query("SET NAMES 'utf8'");
// ou tu vas directement chercher une méthode comme pour la session
// $this->loadDatabase();
}
}
..... tu te doute de la suite je pense
- les methodes sessions et database
- les methodes obligatoires pour bien implémenter avec Hoa_Framework_Parameterizable
du coup tu lances en fesant
importModule('Application.~');
$application = new Hoathis_Application();
ou
$application = new Hoathis_Application('nodatabase');
ou
$application = new Hoathis_Application('nodatabase nosession');
ou
...
Si tu veux le reste de la classe, redemande... mais je te conseil de la construire toi même, c'est pas bien compliqué...
tu peux aussi brancher ton objet application à ton routeur pour le récupérer dans tous tes controleurs.
Donc dans ton bootstrap tu vas avoir:
$controller->attachObject('application', $application);
et après dans tes controlleurs tu vas avoir:
public function IndexAction () {
echo $this->application->getParameter('application.name');
}
Pratique,
Voilou ^^
Dernière fois dit par tetardo (28 Jan. 2010 22:06)
Le code c'est comme le paic citron, quand il y en a plus... il y en a encore !