quickstart-intro-mvc.xml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="learning.quickstart.intro">
  5. <title>Zend Framework &amp; Introduction MVC</title>
  6. <sect2 id="learning.quickstart.intro.zf">
  7. <title>Zend Framework</title>
  8. <para>
  9. Zend Framework est un cadre de travail open source orienté objets pour des applications
  10. web basées sur <acronym>PHP</acronym> 5. Zend Framework est souvent appelé une
  11. "bibliothèque de composants" car ses composants sont faiblement couplés et vous
  12. pouvez les utiliser de manière plus ou moins indépendante. Mais Zend Framework propose
  13. aussi une solution avancée Model-View-Controller (<acronym>MVC</acronym>) qui peut être
  14. utilisée pour monter des structures de base pour vos applications. Une liste complète
  15. des composants de Zend Framework avec une brève description peut être trouvée dans
  16. <ulink url="http://framework.zend.com/about/components">l'aperçu des composants</ulink>.
  17. Ce guide de démarrage montre les composants les plus utilisés dans Zend Framework, comme
  18. <classname>Zend_Controller</classname>, <classname>Zend_Layout</classname>,
  19. <classname>Zend_Config</classname>, <classname>Zend_Db</classname>,
  20. <classname>Zend_Db_Table</classname>, <classname>Zend_Registry</classname>, ainsi que
  21. quelques aides de vue.
  22. </para>
  23. <para>
  24. En utilisant ces composants nous allons construire un livre d'or reposant sur une base
  25. de données, simple, en quelques minutes. Le code source complet pour cette application
  26. est disponible dans les formats&#160;:
  27. </para>
  28. <itemizedlist>
  29. <listitem>
  30. <para>
  31. <ulink
  32. url="http://framework.zend.com/demos/ZendFrameworkQuickstart.zip">zip</ulink>
  33. </para>
  34. </listitem>
  35. <listitem>
  36. <para>
  37. <ulink
  38. url="http://framework.zend.com/demos/ZendFrameworkQuickstart.tar.gz">tar.gz</ulink>
  39. </para>
  40. </listitem>
  41. </itemizedlist>
  42. </sect2>
  43. <sect2 id="learning.quickstart.intro.mvc">
  44. <title>Model-View-Controller</title>
  45. <para>
  46. Qu'est ce que <acronym>MVC</acronym> dont tout le monde parle et pourquoi se pencher
  47. dessus&#160;? <acronym>MVC</acronym> est bien plus qu'un acronyme de trois lettres
  48. (<acronym>TLA</acronym>) que vous pouvez sortir pour faire "élégant"&#160;; c'est
  49. devenu un standard de conception des applications Web modernes, ceci pour de bonnes
  50. raisons. La plupart du code des application se retrouvent dans une de ces
  51. catégories&#160;: présentation, logique métier, accès aux données. Le pattern
  52. <acronym>MVC</acronym> modélise cette séparation à merveille. Le résultat final est
  53. qu'un code de présentation peut être travaillé à un endroit de l'application alors que
  54. la logique métier et l'accès aux données le sont à d'autres endroits. La plupart des
  55. développeurs ont trouvé cette séparation indispensable pour maintenir le code global
  56. organisé, particulièrement lorsque plusieurs développeurs travaillent ensemble sur la
  57. même application.
  58. </para>
  59. <note>
  60. <title>Plus d'informations</title>
  61. <para>
  62. Cassons le pattern pour voir les pièces individuellement&#160;:
  63. </para>
  64. <para>
  65. <inlinegraphic width="321" scale="100" align="center" valign="middle"
  66. fileref="figures/learning.quickstart.intro.mvc.png" format="PNG" />
  67. </para>
  68. <itemizedlist>
  69. <listitem>
  70. <para>
  71. <emphasis>Model</emphasis> - C'est la partie qui définit la fonctionnalité
  72. de base de l'application derrière des abstractions. L'accès aux données
  73. et la logique métier sont définis dans cette couche.
  74. </para>
  75. </listitem>
  76. <listitem>
  77. <para>
  78. <emphasis>View</emphasis> - La vue définit exactement ce qui sera présenté à
  79. l'utilisateur. Normalement les contrôleurs passent des données à chaque vue
  80. à rendre dans un format précis. Les vues collectent les données de
  81. l'utilisateur aussi. Ici vous trouverez principalement du
  82. <acronym>HTML</acronym>.
  83. </para>
  84. </listitem>
  85. <listitem>
  86. <para>
  87. <emphasis>Controller</emphasis> - Les contrôleurs sont la colle qui lie
  88. tout. Ils manipulent les modèles, décident de la vue à rendre en fonction
  89. de la requête utilisateur et d'autres facteurs, passent les données dont
  90. chaque vue a besoin et passent éventuellement la main à un autre contrôleur.
  91. La plupart des experts <acronym>MVC</acronym> experts recommandent <ulink
  92. url="http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model">de
  93. garder les contrôleurs les plus simples et petits possibles</ulink>.
  94. </para>
  95. </listitem>
  96. </itemizedlist>
  97. <para>
  98. Bien sûr <ulink url="http://ootips.org/mvc-pattern.html">on pourrait en dire plus
  99. </ulink> sur ce pattern critique, mais nous avons là suffisament d'informations
  100. pour comprendre l'application de livre d'or que nous allons construire.
  101. </para>
  102. </note>
  103. </sect2>
  104. </sect1>