1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- EN-Revision: 20106 -->
4 <sect1 id="learning.quickstart.intro">
5 <title>Zend Framework & wprowadzenie do MVC</title>
7 <sect2 id="learning.quickstart.intro.zf">
8 <title>Zend Framework</title>
11 Zend Framework to otwarty, zorientowany obiektowo framework aplikacji webowych
12 przeznaczony dla <acronym>PHP</acronym> 5. ZF jest często określany mianem 'biblioteki
13 komponentów' ponieważ składa się z wielu, luźno powiązanych części, których można
14 używać niezależnie od siebie.
15 Dodatkowo Zend Framework oferuje zaawansowaną implementację
16 wzorca projektowego Model-Widok-Kontroler
17 (Model-View-Controller - <acronym>MVC</acronym>),
18 która może zostać użyta do skonstruowania podstawowej struktury aplikacji.
19 Pełna lista komponentów Zend Framework razem z krótkim opisem znajduje się w dziale
20 <ulink url="http://framework.zend.com/about/components">omówienie komponentów</ulink>.
21 Wprowadzenie "QuickStart" stanowi wstęp do poznania najczęściej używanych komponentów
22 Zend Framework, takich jak:
23 <classname>Zend_Controller</classname>,
24 <classname>Zend_Layout</classname>,
25 <classname>Zend_Config</classname>,
26 <classname>Zend_Db</classname>,
27 <classname>Zend_Db_Table</classname>,
28 <classname>Zend_Registry</classname>, oraz kilku klas pomocniczych (view helpers).
32 Za pomocą tych komponentów w ciągu kilkudziesięciu minut zostanie utworzona
33 prosta aplikacja oparta na bazie danych - księga gości (guest book). Pełny kod
34 źródłowy tej aplikacji jest dostępny w następujących archiwach:
41 url="http://framework.zend.com/demos/ZendFrameworkQuickstart.zip">zip</ulink>
48 url="http://framework.zend.com/demos/ZendFrameworkQuickstart.tar.gz">tar.gz</ulink>
54 <sect2 id="learning.quickstart.intro.mvc">
55 <title>Model-View-Controller</title>
58 Tak więc, czym dokładnie jest ten będący na ustach wszystkich wzorzec
59 <acronym>MVC</acronym>? I dlaczego miałoby to mnie obchodzić?
60 <acronym>MVC</acronym> to o wiele więcej niż kolejny skrót,
61 który można mimowolnie wplatać w wypowiedź aby spróbować wywrzeć wrażenie na innych;
62 z biegiem czasu <acronym>MVC</acronym> nie bez przyczyny stał się standardem
63 projektowania nowoczesnych aplikacji webowych.
64 Większość aplikacji sieciowych opiera się w znacznej mierze
65 na funkcjonalnościach, które można podzielić na trzy kategorie: warstwa prezentacji,
66 logika biznesowa, dostęp do danych.
67 Wzorzec <acronym>MVC</acronym> ułatwia zaprojektowanie oprogramowania z
68 zachowaniem odrębności każdej z tych warstw.
69 W efekcie kod prezentacji może zostać umieszczony w jednej części aplikacji,
70 logika biznesowa w drugiej, a dostęp do danych w trzeciej.
71 Wielu programistów przekonało się, że dobrze zdefiniowane odseparowanie jest
72 nieodzowne dla utrzymania kodu w zorganizowanej
73 strukturze, zwłaszcza przy projektach wieloosobowych.
77 <title>Więcej informacji</title>
80 Omawiany wzorzec można podzielić na następujące części:
84 <inlinegraphic width="321" scale="100" align="center" valign="middle"
85 fileref="figures/learning.quickstart.intro.mvc.png" format="PNG" />
91 <emphasis>Model</emphasis> - Ta część aplikacji definiuje jej podstawowe
92 funkcjonalności w sposób mniej lub bardziej abstrakcyjny. Sposób dostępu
93 do danych oraz logika biznesowa również mogą być zdefiniowane w tym miejscu.
99 <emphasis>View (Widok)</emphasis> - Ten element definiuje wszystko to co
100 zostaje zaprezentowane użytkownikowi. Najczęściej kontrolery przekazują
101 dane do każdego z widoków do uformowania i przedstawienia w określonym
102 formacie. Poprzez widoki następuje również odebranie danych od użytkownika.
103 W tej części będzie się znajdował kod HTML aplikacji <acronym>MVC</acronym>.
109 <emphasis>Controller (Kontroler)</emphasis> - Ten składnik łączy cały
110 wzorzec razem. Kontrolery manipulują modelami, decydują o widoku, jaki
111 zostanie zaprezentowany (na podstawie interakcji z użytkownikiem).
112 Odpowiadają także za przekazanie danych do widoków lub przekazanie
113 kontroli do innego kontrolera. Większość ekspertów MVC zaleca
114 <ulink url="http://weblog.jamisbuck.org/2006/10/18/skinny-controller-fat-model">
115 tworzenie możliwie jak najmniejszych kontrolerów</ulink>.
121 Oczywiście, aby zgłębić temat wzorca <acronym>MVC</acronym>
122 <ulink url="http://ootips.org/mvc-pattern.html">należałoby go rozwinąć</ulink>
123 ale dla zrozumienia opisywanej aplikacji - księgi gości - powyższy, minimalny
124 opis powinien wystarczyć.