File: layout-intro.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (54 lines) | stat: -rw-r--r-- 2,169 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="learning.layout.intro">
    <title>Introduction</title>

    <para>
        Dans une application utilisant les couches Zend Framework <acronym>MVC</acronym>,
        vos scripts de vue ne seront que des blocs de <acronym>HTML</acronym> concernant
        l'action demandée. Par exemple, une action "<filename>/user/list</filename>"
        mènerait vers un script de vue itérant sur les utilisateurs en présentant une liste:
    </para>

    <programlisting language="php"><![CDATA[
<h2>Utilisateurs</h2>
<ul>
    <?php if (!count($this->users)): ?>
    <li>Pas d'utilisateurs</li>
    <?php else: ?>
    <?php foreach ($this->users as $user): ?>
    <li>
        <?php echo $this->escape($user->fullname) ?>
        (<?php echo $this->escape($user->email) ?>)
    </li>
    <?php endforeach ?>
    <?php endif ?>
</ul>
]]></programlisting>

    <para>
        Comme c'est juste un bloc de code <acronym>HTML</acronym>, ce n'est pas une page valide,
        il manque le <acronym>DOCTYPE</acronym> et la balise ouvrante <acronym>HTML</acronym> puis
        <acronym>BODY</acronym>. Quand seront-ils crées?
    </para>

    <para>
        Dans les anciennes versions de Zend Framework, les développeurs créaient souvent des scripts
        de vue "header" et "footer" qui servaient à cela. Ca fonctionnait certes, mais c'était
        difficile à refactoriser, ou pour appeler du contenu provenant de plusieurs actions.
    </para>

    <para>
        Le pattern
        <ulink url="http://martinfowler.com/eaaCatalog/twoStepView.html">Two-Step View</ulink>
        solutionne beaucoup des problèmes indiqués. Avec, la vue "application" est crée en premier,
        puis injectée dans une vue "page" ainsi présentée à l'utilisateur client. la vue de page
        peut être imaginée comme un template global ou layout qui décrirait des éléments communs
        utilisés au travers de multiples pages.
    </para>

    <para>
        Dans Zend Framework, <classname>Zend_Layout</classname> implémente le pattern Two-Step View.
    </para>
</sect1>