quickstart-intro-mvc.xml 5.8 KB

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