Un plugin

  1. class ND_Controller_Plugin_Maintenance extends Zend_Controller_Plugin_Abstract
  2. {
  3. public function routeShutdown(Zend_Controller_Request_Abstract $request)
  4. {
  5. $request->setActionName('index');
  6. $request->setModuleName('default');
  7. $request->setControllerName('maintenance');
  8. }
  9. }

un controlleur

  1. <?php
  2.  
  3. class MaintenanceController extends ND_Controller_Action {
  4.  
  5. public function indexAction(){}
  6.  
  7. }

une vue

  1. <h1><?php echo $this->translate('site.unavailable.title');?></h1>
  2.  
  3. <?php echo $this->translate('site.unavailable.content');?>

une ligne dans le application.ini à décommenter en cas de maintenance

  1. ; resources.frontController.plugins.maintenance = "ND_Controller_Plugin_Maintenance"

Ne reste plus qu’a :

  • permettre de gérer la mise en/sortie de maintenance via le système de gestion de l’application
  • permettre de by-passer la maintenance selon des règles établies (IP/Authentification htaccess)

Merci à E.Schrade pour l’idée qui reste à appronfondir