Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2011, 15h26   #1
Nouveau Membre du Club
 
Inscription : février 2009
Messages : 261
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 261
Points : 30
Points : 30
Par défaut Utilité du bootstrap?

Lorsque je me renseigne avec des tutoriels pour apprendre à manipuler certains composants de Zend, parfois, il faut créer une méthode dans le Bootstrap alors qu'elle pourrait très bien fonctionner dans la méthode init() de l'un de mes controlleurs.

Par exemple, pour l'internationalisation, j'ai du créer cette méthode dans mon Bootstrap:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
protected function _initTranslate()
	{
		// On récupère la session du site.
		$session = Zend_Registry::get('session');
		// On définit la langue par défaut sur le site.
 
		$locale = new Zend_Locale('fr');
		// On enregistre cette langue dans notre registre.
		Zend_Registry::set('Zend_Locale', $locale);
		// Si la langue existe en session, on récupère la session, sinon on prend la valeur par défaut.
		$langLocale = isset($session->lang) ? $session->lang : $locale;
		// On lance l'objet de traduction en lui passant les fichiers de langues
		$translate = new Zend_Translate('array',APPLICATION_PATH.'/languages/fr_FR.php','fr');
		$translate->addTranslation(APPLICATION_PATH.'/languages/en_US.php','en');
		// On lui passe la langue courante du site
		$translate->setLocale($langLocale);
		// Important pour utiliser le helper.
		Zend_Registry::set('Zend_Translate', $translate);
	}
Comme son nom l'indique, c'est donc une méthode pour initialiser la traduction mais j'aurais très bien pu faire ce traitement dans l'un de mes controller et cela aurait fonctionné donc j'en viens à me demander l'utilité du bootstrap.

Certes j'aurais du refaire ce traitement dans chacun de mes controllers donc l'utilité du bootstrap est que ca me permet d'écrire une seule fois un traitement qui sera utilisé dans toute mon application?

A chaque chargement de page, mon Bootstrap est appelé?

Dans l'ordre des traitements, le Bootstrap est avant mes controllers mais également avant le controller frontal (Zend_Controller_Front)?
absot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 17h59   #2
Membre confirmé
 
Avatar de Nighty
 
Homme Lucas CORBEAUX
Chef de projet MOE
Inscription : février 2003
Messages : 159
Détails du profil
Informations personnelles :
Nom : Homme Lucas CORBEAUX
Âge : 28
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet MOE

Informations forums :
Inscription : février 2003
Messages : 159
Points : 293
Points : 293
Tu t'es effectivement déjà en grande partie répondu : le bootstrap se charge de configurer les éléments communs à toute l'application, et le init() du contrôleur a plus un rôle d'initialisation des éléments utilisés par ce contrôleur uniquement.

Le bootstrap est appelé au tout début de l'application, par la méthode Zend_Application::bootstrap() qui figure en (presque) tout dernier de ton index.php normalement.

Il configure tout ce qu'on lui demande de configurer, y compris le front controller, et lance la boucle de dispatch quand la méthode run() est appelée.
Nighty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 19h44   #3
Nouveau Membre du Club
 
Inscription : février 2009
Messages : 261
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 261
Points : 30
Points : 30
C'est bien ce que je pensais, merci.
absot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h14.


 
 
 
 
Partenaires

Hébergement Web