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