Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-07-2008 17:07:41

upsilon
Nouveau membre
Lieu: Val d'Oise (95)
Date d'inscription: 07-07-2008
Messages: 8

[Résolu][Zend_Controller][1.5]Mettre un site en maintenance

Salut à tous !

Je vous expose mon petit problème...
Je dois implémenter dans le site que je développe une fonctionnalité qui permet de mettre le site "en maintenance", donc inaccessible partout sauf pour la partie admin (qui est le seul module, pour l'instant en tout cas).

Dans le module d'administration, on peut modifier un fichier xml qui contient l'information "site en maintenance ou pas". Ce fichier xml (qui sert à la configuration générale du site) est chargé dans le bootstrap.

Je peux donc vérifier si le site est en maintenance ou pas, et ensuite, j'imagine, faire un _forward() (et pas un _redirect() pour ne pas me manger la vérification à nouveau) sur une page spéciale "Ce site est en maintenance, donc allez en enfer et revenez plus tard" (il fait chaud, je finis par m'énerver en codant, pardonnez moi :p)...

Mais quelle vérification exactement ? Et à quel endroit de mon boostrap ?

Un tit peu de code pour que vous voyiez ce que fait mon bootstrap (très fortement inspiré du tutorial "An Example ZF Blog Application" par Pádraic Brady).

Code:

    self::setupEnvironment(); // Setup de php
    Zend_Loader::registerAutoload();
    self::setupRegistry();
    self::setupConfiguration(); // Chargement de mon fichier XML
    self::setupFrontController(); // setControllerDirectory, setParam('registry') et autres joyeusetés
    self::setupView(); // encodage, doctype, helper, et on finit par un startMVC()
    self::setupDatabase();
    self::setupAcl();

Voilà, vos lumières me seront sûrement très utiles... Merci par avance smile

Dernière modification par upsilon (31-07-2008 12:01:11)

Hors ligne

 

#2 30-07-2008 17:21:47

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu][Zend_Controller][1.5]Mettre un site en maintenance

Bonjour,

Tu peux faire un plugin avec un preDispatch qui ressemble à ça :

Code:

function preDispatch($request) {
  // si pas en maintenance
  if (! test_si_mode_maintenance) {
    return;
  }
  // mode maintenance : admin, on laisse entrer
  if ($request->getModuleName() == "module") {
    return;
  }
  // reste du mode maintenance
  $request->setModuleName("admin");
  $request->setControllerName("index");
  $request->setActionName("maintenance");
}

Dans ce cas, quand tu es en mode maintenance, tout est redirigé vers la page admin-indexController-maintenanceAction, sauf les pages d'admin qui sont bien servies. Si on n'est pas en mode maintenance, on laisse tout passer.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 31-07-2008 12:00:50

upsilon
Nouveau membre
Lieu: Val d'Oise (95)
Date d'inscription: 07-07-2008
Messages: 8

Re: [Résolu][Zend_Controller][1.5]Mettre un site en maintenance

Parfait, c'est exactement ce qu'il me fallait smile Ce genre de p'tits plugins est très bien fait et très bien pensé ! (et permet de comprendre un peu mieux comment ZF fonctionne en interne au niveau du dispatching, ce qui n'est jamais perdu).

Et merci pour le temps de réponse, ça fait plaisir d'avoir une communauté aussi active smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages