Je reprends cette citation car c’est un peu le principe de mon fichier bootstrap.

Un index.php pour piloter tous les sites, les informations spécifiques à chaque site étant soit dans leur répertoire spécifiques situé dans l’arborescence application soit dans la configuration du serveur web.

  1. <?php
  2.  
  3. /**
  4.  * Definition des constantes
  5.  */
  6. define('CMS_PATH', dirname(dirname(__FILE__)).'/' ) ;
  7. define('APPLICATION_PATH', CMS_PATH . 'applications/' . (
  8. getenv('APPLICATION_PATH')
  9. ? getenv('APPLICATION_PATH') // nom de l'application
  10. : 'default' )
  11. );
  12. define('APPLICATION_ENV',
  13. getenv('APPLICATION_ENV')
  14. ? getenv('APPLICATION_ENV') // environnement de l'application (production|staging|testing|development)
  15. : 'development'
  16. );
  17. define('LIBRARY_PATH', realpath(CMS_PATH . 'libraries') ); // localisation des bibliotheques
  18. define('MODULES_PATH', realpath(CMS_PATH . 'modules') ); // localisation des différents modules
  19. define('COMMON_PATH' , realpath(CMS_PATH . 'common') ); // localisation des ressources communes (i18n, JS, CSS, images)
  20.  
  21. /**
  22.  * Definition de l'include path
  23.  */
  24. LIBRARY_PATH . PATH_SEPARATOR .
  25. MODULES_PATH . PATH_SEPARATOR .
  26. );
  27.  
  28.  
  29. /**
  30.  * Récuperation des fichiers de config
  31.  */
  32. $configFile = array_merge(
  33. glob(COMMON_PATH . '/config/*.ini') // chargement des configurations communes à tous les sites
  34. , glob(APPLICATION_PATH . '/config/*.ini') // chargement des configurations spécifiques
  35. );
  36. require_once 'Zend/Config/Ini.php';
  37. foreach( $configFile as $file ){
  38. if ( isset($config) && $config instanceof Zend_Config ){
  39. $config->merge(new Zend_Config_Ini($file, APPLICATION_ENV));
  40. }else{
  41. $config = new Zend_Config_Ini($file, APPLICATION_ENV, true);
  42. }
  43. }
  44.  
  45. /**
  46.  * Lancement de l'application
  47.  */
  48. require_once 'Zend/Application.php';
  49. $application = new Zend_Application(
  50. APPLICATION_ENV,
  51. $config
  52. );
  53. $application->bootstrap()
  54. ->run();