Zend_Application-TheoryOfOperation.xml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 14741 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.application.theory-of-operation">
  5. <title>Théorie générale</title>
  6. <para>Monter une application MVC configurée et prête à être lancée requière de plus en plus de
  7. code au fur et à mesure de l'ajout de fonctionnalités : monter une base de données, configurer
  8. la vue et ses aides, les layouts, enregistrer des plugins, des aides d'action et bien plus
  9. encore ...</para>
  10. <para>Aussi, vous réutiliserez souvent le même code dans vos tests, dans une tâche cron ou
  11. encore un service. Il est certes possible d'inclure le script de bootstrap dans de tels cas,
  12. mais souvent des variables seront dépendantes de l'environnement. Par exemple, vous n'aurez pas
  13. besoin de MVC dans une tâche cron, ou alors vous aurez juste besoin de l'accès à la base de
  14. données dans un script de service.</para>
  15. <para><classname>Zend_Application</classname> a pour but de simplifier ces processus et de promouvoir la
  16. réutilisabilité de code en encapsulant les étages de définition du bootstrap en concepts
  17. orientés objet.</para>
  18. <para>Zend_Application se décompose en 3 parties :</para>
  19. <itemizedlist>
  20. <listitem>
  21. <para><classname>Zend_Application</classname>: charge l'environnement PHP, à savoir les
  22. include_paths et les autoloads, et instancie la classe de bootstrap demandée.</para>
  23. </listitem>
  24. <listitem>
  25. <para><classname>Zend_Application_Bootstrap</classname>: regroupement d'interfaces pour les
  26. classes de bootstrap. <classname>Zend_Application_Bootstrap_Base</classname> propose des
  27. fonctionnalités de base concernant l'amorçage (le bootstrap), à savoir des algorithmes
  28. de vérification des dépendances et la possibilité de charger des ressources à la
  29. demande.</para>
  30. </listitem>
  31. <listitem>
  32. <para><classname>Zend_Application_Resource</classname> est une interface pour les ressources de
  33. bootstrap qui peuvent être chargées à la demande depuis les instances de
  34. bootstrap.</para>
  35. </listitem>
  36. </itemizedlist>
  37. <para>Les développeurs créent une classe de bootstrap pour leur application en étendant
  38. <classname>Zend_Application_Bootstrap_Base</classname> ou en implémentant (au minimum)
  39. <classname>Zend_Application_Bootstrap_IBootstrap</classname>. Le point d'entrée (public/index.php)
  40. chargera <classname>Zend_Application</classname> en l'instanciant et en lui passant :</para>
  41. <itemizedlist>
  42. <listitem>
  43. <para>L'environnement courant</para>
  44. </listitem>
  45. <listitem>
  46. <para>Des options de bootstrapping</para>
  47. </listitem>
  48. </itemizedlist>
  49. <para>Les options de bootstrap incluent le chemin vers le fichier contenant la classe de
  50. bootstrap, et optionnellement :</para>
  51. <itemizedlist>
  52. <listitem>
  53. <para>Des include_paths supplémentaires</para>
  54. </listitem>
  55. <listitem>
  56. <para>Des espaces de nom d'autoload à enregistrer</para>
  57. </listitem>
  58. <listitem>
  59. <para>Des paramètres php.ini à initialiser</para>
  60. </listitem>
  61. <listitem>
  62. <para>Le nom de la classe pour le bootstrap (sinon "Bootstrap" sera utilisée)</para>
  63. </listitem>
  64. <listitem>
  65. <para>Des paires prefix/chemin pour les ressources à utiliser</para>
  66. </listitem>
  67. <listitem>
  68. <para>N'importe quelle ressource à utiliser (nom de classe ou nom court)</para>
  69. </listitem>
  70. <listitem>
  71. <para>Des chemins additionnels vers un fichier de configuration à charger</para>
  72. </listitem>
  73. <listitem>
  74. <para>Des options de configuration supplémentaires</para>
  75. </listitem>
  76. </itemizedlist>
  77. <para>Les options peuvent être un tableau, un objet <classname>Zend_Config</classname>, ou le chemin vers
  78. un fichier de configuration.</para>
  79. </sect1>