| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="learning.layout.intro">
- <title>Einführung</title>
- <para>
- Wenn eine Website gebaut wird, die Zend Frameworks <acronym>MVC</acronym> Layer verwendet,
- sind die View Skripte typischerweise nur Abschnitte von <acronym>HTML</acronym> welche der
- angefragten Aktion angehören. Wenn man zum Beispiel die Aktion
- "<filename>/user/list</filename>" hat, könnte man ein View Skript erstellen welches durch
- die Benutzer iteriert und eine unsortierte Liste präsentiert:
- </para>
- <programlisting language="php"><![CDATA[
- <h2>Benutzer</h2>
- <ul>
- <?php if (!count($this->users)): ?>
- <li>Keine Benutzer gefunden</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>
- Da dies nur ein <acronym>HTML</acronym> Abschnitt ist, ist dies keine gültige Seite; es
- fehlt eine <acronym>DOCTYPE</acronym> Deklaration, und die öffnenden <acronym>HTML</acronym>
- und <acronym>BODY</acronym> Tags. Die Frage ist also, wie wir diese erstellen?
- </para>
- <para>
- In frühen Versionen von Zend Framework erstellten Entwickler oft "header" und "footer" View
- Skripte welche diese Teile enthielten, und Sie dann in jedem View Skript darstellten. Wärend
- diese Methode funktioniert ist es auch schwer Sie im Nachhinein zu verändern, oder
- kombinierte Inhalte zu erstellen indem mehrere Aktionen aufgerufen werden.
- </para>
- <para>
- Das <ulink url="http://martinfowler.com/eaaCatalog/twoStepView.html">Two Step View</ulink>
- Design Pattern beantwortet viele der gezeigten Probleme. In diesem Pattern wird die
- "application" (Anwendungs) View als erstes erstellt, und dann in die "page" (Seite) Views
- injiziert, welche anschließend dem Kunden presentiert wird. Die Seitenansicht kann wie ein
- seitenweites Template oder Layout angesehen werden, und würde übliche Elemente zwischen den
- verschiedenen Seiten verwenden.
- </para>
- <para>
- Im Zend Framework implementiert <classname>Zend_Layout</classname> das Two Step View
- Pattern.
- </para>
- </sect1>
|