Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00109 011396 10695598 na godz. na dobę w sumie
Zend Framework od podstaw. Wykorzystaj gotowe rozwiązania PHP do tworzenia zaawansowanych aplikacji internetowych - książka
Zend Framework od podstaw. Wykorzystaj gotowe rozwiązania PHP do tworzenia zaawansowanych aplikacji internetowych - książka
Autor: Liczba stron: 536
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-3052-3 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> php - programowanie
Porównaj ceny (książka, ebook, audiobook).

Elastyczne PHP - twórz nowe strony z wykorzystaniem Zend Framework!

Zend Framework to nowoczesna biblioteka ułatwiająca tworzenie stron WWW w języku PHP. Ten wygodny system pozwala projektantowi stron internetowych znacznie ograniczyć bądź nawet wyeliminować konieczność żmudnego wpisywania kodu na rzecz posługiwania się gotowymi elementami, niezależnie od tego, czy chce zaimplementować podstawowe mechanizmy aplikacji, czy też wzbogacić ją o konkretne funkcjonalności. Wsparcie ze strony twórców języka PHP, stabilna wersja, gotowa do pomocy społeczność programistów-entuzjastów oraz ogromna elastyczność to główne atuty tego rozwiązania, sprawiające, że jego popularność rośnie w dużym tempie.

Niniejsza publikacja ma za zadanie przybliżyć Ci Zend Framework, począwszy od absolutnych podstaw, aż po kwestie związane z pieczołowitym zabezpieczaniem dostępu do aplikacji. Znajdziesz tu jasne i czytelne przykłady zastosowania frameworka w różnych sytuacjach oraz propozycje gotowych rozwiązań konkretnych problemów programistycznych. Nauczysz się tworzyć zarówno proste strony WWW, jak i zaawansowane aplikacje, wymieniać szablony oraz implementować wtyczki. Poznasz sposoby tworzenia i wykorzystywania klas, współpracy z bazą danych, publikowania aplikacji w Internecie oraz używania formularzy. Krótko mówiąc, masz w ręku kompletny przewodnik po jednym z najlepszych frameworków PHP!

Programuj swobodnie, wykorzystując uniwersalne biblioteki PHP!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Idź do • Spis treści • Przykładowy rozdział • Skorowidz Katalog książek • Katalog online • Zamów drukowany katalog Twój koszyk • Dodaj do koszyka Cennik i informacje • Zamów informacje o nowościach • Zamów cennik Czytelnia • Fragmenty książek online Kontakt Helion SA ul. Kościuszki 1c 44-100 Gliwice tel. 32 230 98 63 e-mail: helion@helion.pl © Helion 1991–2011 Zend Framework od podstaw. Wykorzystaj gotowe rozwiązania PHP do tworzenia zaawansowanych aplikacji internetowych Autor: Włodzimierz Gajda ISBN: 978-83-246-3052-3 Format: 158×235, stron: 536 Elastyczne PHP – twórz nowe strony z wykorzystaniem Zend Framework! • Tworzenie stron WWW w Zend Framework – zacznij od „Hello, World” • Bazy danych i formularze – opanuj wszystkie elementy • Zabezpieczanie dostępu do aplikacji – nie daj się zaskoczyć Zend Framework to nowoczesna biblioteka ułatwiająca tworzenie stron WWW w języku PHP. Ten wygodny system pozwala projektantowi stron internetowych znacznie ograniczyć bądź nawet wyeliminować konieczność żmudnego wpisywania kodu na rzecz posługiwania się gotowymi elementami, niezależnie od tego, czy chce zaimplementować podstawowe mechanizmy aplikacji, czy też wzbogacić ją o konkretne funkcjonalności. Wsparcie ze strony twórców języka PHP, stabilna wersja, gotowa do pomocy społeczność programistów-entuzjastów oraz ogromna elastyczność to główne atuty tego rozwiązania, sprawiające, że jego popularność rośnie w dużym tempie. Niniejsza publikacja ma za zadanie przybliżyć Ci Zend Framework, począwszy od absolutnych podstaw, aż po kwestie związane z pieczołowitym zabezpieczaniem dostępu do aplikacji. Znajdziesz tu jasne i czytelne przykłady zastosowania frameworka w różnych sytuacjach oraz propozycje gotowych rozwiązań konkretnych problemów programistycznych. Nauczysz się tworzyć zarówno proste strony WWW, jak i zaawansowane aplikacje, wymieniać szablony oraz implementować wtyczki. Poznasz sposoby tworzenia i wykorzystywania klas, współpracy z bazą danych, publikowania aplikacji w Internecie oraz używania formularzy. Krótko mówiąc, masz w ręku kompletny przewodnik po jednym z najlepszych frameworków PHP! • Pierwszy projekt w Zend Framework i praca w środowisku NetBeans • Tworzenie i usuwanie kontrolerów oraz akcji • Wymiana szablonu HTML/CSS i dołączanie zewnętrznych zasobów • Zasoby i implementacja inicjalizującej je wtyczki • Bazy danych, tabele i relacje • Identyfikacja rekordów na podstawie wartości slug • Menu generowane na podstawie zawartości tabeli bazy danych • Publikowanie aplikacji wykorzystującej bazę danych na serwerze hostingowym • Przetwarzanie formularza, czyli implementacja interfejsu CRUD i dostosowywanie kodu HTML • Walidatory oraz filtry i przesyłanie plików na serwer • Zabezpieczanie haseł funkcjami skrótu • Rejestracja i ograniczanie uprawnień użytkowników • Modularyzacja aplikacji Programuj swobodnie, wykorzystując uniwersalne biblioteki PHP! Spis treĈci Tworzenie stron WWW w Zend Framework ...................... 9 CzöĈè I Rozdziaä 1. Pierwszy projekt w Zend Framework ............................................... 11 Podsumowanie ................................................................................................................ 17 Uruchomienie gotowego przykáadu ................................................................................ 18 Rozdziaä 2. Praca w Ĉrodowisku NetBeans ........................................................ 19 Rozdziaä 3. Tworzenie i usuwanie kontrolerów oraz akcji ................................... 27 Praca w Ğrodowisku deweloperskim ......................................................................... 33 Rozdziaä 4. Wymiana szablonu HTML/CSS ........................................................ 35 Adresy strony z wierszem ........................................................................................ 41 Rozdziaä 5. Doäñczanie zewnötrznych zasobów .................................................. 43 Analiza kodu HTML generowanego przez aplikacjĊ ...................................................... 47 Rozdziaä 6. Hiperäñcza ...................................................................................... 49 Zalety mapowania adresów wewnĊtrznych/zewnĊtrznych ............................................. 51 Reguáy domyĞlne i funkcja pomocnicza url() ........................................................... 60 Rozdziaä 7. Strona bäödu 404 ........................................................................... 63 Analiza odpowiedzi HTTP ............................................................................................. 71 Rozdziaä 8. Publikowanie projektu na serwerze hostingowym ............................ 75 Zestawienie plików tworzących projekt 8.1 ............................................................. 80 Rozdziaä 9. Podsumowanie ............................................................................... 89 Pliki Ĩródáowe aplikacji .................................................................................................. 90 Przebieg wykonania aplikacji ......................................................................................... 90 Konwencje nazewnicze klas i plików ............................................................................. 95 CzöĈè II Procedura inicjalizacji aplikacji ..................................... 97 Rozdziaä 10. Zasoby .......................................................................................... 99 Zasoby i ich opcje konfiguracyjne ................................................................................ 102 Zasób db ................................................................................................................. 102 Zasób frontController ............................................................................................. 103 Zasób layout ........................................................................................................... 103 Zasób router ........................................................................................................... 104 Zasób view ............................................................................................................. 105 4 Zend Framework od podstaw Kiedy automatyczna konfiguracja zawodzi? ................................................................ 107 Metody _init() klasy Bootstrap ..................................................................................... 108 Inicjalizacja wybranych zasobów ................................................................................. 109 DostĊp do zainicjalizowanych zasobów ....................................................................... 110 DostĊp do zainicjalizowanych zasobów wewnątrz akcji .............................................. 111 Kiedy nie implementowaü wáasnej metody _init()? ...................................................... 111 Rozdziaä 11. Implementacja wtyczki inicjalizujñcej zasoby ................................. 123 Klasa wtyczki i klasa zasobu ........................................................................................ 123 Wáączanie przetwarzania wtyczki ................................................................................ 126 Rozdziaä 12. Podsumowanie ............................................................................. 133 CzöĈè III Zend_DB — klasy zapewniajñce dostöp do baz danych ... 135 Rozdziaä 13. Pierwszy projekt ZF wykorzystujñcy bazö danych .......................... 137 Uruchomienie gotowego projektu .......................................................................... 154 Rozdziaä 14. Klasa Zend_Db_Adapter_Abstract i klasy pochodne ...................... 157 Klasa Zend_Db ............................................................................................................. 158 Klasa Zend_Db_Adapter_Abstract i jej klasy pochodne .............................................. 160 Metoda Zend_Db_Adapter_Abstract::fetchRow() ................................................. 163 Metoda Zend_Db_Adapter_Abstract::fetchAll() .................................................... 165 Metoda Zend_Db_Adapter_Abstract::fetchCol() ................................................... 166 Metoda Zend_Db_Adapter_Abstract::fetchOne() .................................................. 167 Metoda Zend_Db_Adapter_Abstract::fetchAssoc() ............................................... 167 Metoda Zend_Db_Adapter_Abstract::fetchPairs() ................................................. 167 Metoda Zend_Db_Adapter_Abstract::setFetchMode() .......................................... 168 Metoda Zend_Db_Adapter_Abstract::insert() ........................................................ 169 Metoda Zend_Db_Adapter_Abstract::lastInsertId() ............................................... 169 Metoda Zend_Db_Adapter_Abstract::delete() ....................................................... 170 Metoda Zend_Db_Adapter_Abstract::update() ...................................................... 171 Metoda Zend_Db_Adapter_Abstract::query() ........................................................ 172 Metoda Zend_Db_Adapter_Abstract::quote() ........................................................ 172 Metoda Zend_Db_Adapter_Abstract::quoteInto() .................................................. 173 Metody do obsáugi transakcji ................................................................................. 173 UĪycie wyraĪeĔ SQL ............................................................................................. 174 Rozdziaä 15. Klasa Zend_Db_Table i klasy z niñ zwiñzane .................................. 181 Klasa Zend_Db_Select ........................................................................................... 181 Klasa Zend_Db_Table .................................................................................................. 185 Konstruktor klasy Zend_Db_Table ........................................................................ 186 Metoda Zend_Db_Table::insert() ........................................................................... 187 Metoda Zend_Db_Table::delete() .......................................................................... 188 Metoda Zend_Db_Table::update() ......................................................................... 189 Metoda Zend_Db_Table::find() ............................................................................. 189 Metoda Zend_Db_Table::select() ........................................................................... 190 Metoda Zend_Db_Table::fetchAll() ....................................................................... 190 Metoda Zend_Db_Table::fetchRow() .................................................................... 191 Metoda Zend_Db_Table::createRow() ................................................................... 191 Klasa Zend_Db_Table_Row ........................................................................................ 193 Klasa Zend_Db_Table_Rowset .................................................................................... 194 Spis treĈci 5 Rozdziaä 16. Dostosowywanie klas dostöpu do bazy danych .............................. 201 Modyfikacja porządku kolekcji rekordów zwracanych przez metodĊ Zend_Db_Table::fetchAll() ........................................................................................ 202 Definiowanie wáasnej metody __toString() w klasach dziedziczących po Zend_Db_Table_Row ........................................... 203 Rozdziaä 17. Relacje 1:n (jeden do wielu) ......................................................... 211 Klucze gáówne .............................................................................................................. 211 Relacja jeden do wielu .................................................................................................. 211 Relacje 1:n w programie MySQL Workbench ............................................................. 213 Klucze obce o wartoĞci NULL ..................................................................................... 215 Akcje referencyjne ........................................................................................................ 216 UĪycie relacji 1:n w Zend Framework .......................................................................... 217 Operowanie rekordami powiązanymi relacją ............................................................... 219 Tworzenie rekordów .............................................................................................. 219 Rekordy zaleĪne ..................................................................................................... 220 Rekord nadrzĊdny .................................................................................................. 222 Implementacja wáasnych metod dostĊpu do rekordów powiązanych ..................... 223 Rozdziaä 18. Relacje n:m (wiele do wielu) ......................................................... 229 Relacja wiele do wielu .................................................................................................. 229 Relacje n:m w programie MySQL Workbench ............................................................ 230 UĪycie relacji n:m w Zend Framework ........................................................................ 230 Operowanie rekordami powiązanymi relacją ............................................................... 233 Tworzenie rekordów .............................................................................................. 233 Rekordy zaleĪne ..................................................................................................... 234 Implementacja wáasnych metod dostĊpu do rekordów powiązanych ..................... 235 Rozdziaä 19. Podsumowanie ............................................................................. 243 CzöĈè IV Szczegóäowe dane rekordu .......................................... 247 Rozdziaä 20. Akcja show — wyĈwietlanie szczegóäowych danych rekordu .......... 249 Metoda identyfikacji i wyszukiwania rekordów w bazie danych ................................. 249 Akcja show i jej adres ................................................................................................... 250 Przetwarzanie w akcji show .......................................................................................... 250 Generowanie adresów stron akcji show ........................................................................ 251 Konfiguracja przyjaznych adresów akcji show ............................................................. 258 Rozdziaä 21. Identyfikacja rekordów na podstawie wartoĈci slug ....................... 263 Klasa konwertująca polskie znaki ................................................................................. 264 Funkcje string2slug() oraz html2slug() ......................................................................... 266 Automatyczne generowanie wartoĞci slug podczas zapisywania rekordu w bazie danych .. 284 Rozdziaä 22. Widoki czöĈciowe ......................................................................... 289 Rozdziaä 23. Menu generowane na podstawie zawartoĈci tabeli bazy danych ..... 303 Rozdziaä 24. Zapisywanie w bazie danych plików binarnych .............................. 309 Nagáówek Content-Type ............................................................................................... 309 Konwersja rozszerzenia w typ mime ............................................................................ 310 Wyáączenie przetwarzania widoków .phtml ................................................................. 311 Modyfikacja odpowiedzi w akcji .................................................................................. 312 6 Zend Framework od podstaw Rozdziaä 25. Publikowanie aplikacji wykorzystujñcej bazö danych na serwerze hostingowym ......................................... 321 Rozdziaä 26. Podsumowanie ............................................................................. 339 CzöĈè V Formularze .................................................................... 341 Rozdziaä 27. Formularz i kontrolki .................................................................... 343 Tworzenie formularzy poleceniem zf create form ........................................................ 343 Tworzenie kontrolek formularza .................................................................................. 344 Umieszczanie formularza na stronach WWW .............................................................. 346 Rodzaje kontrolek ......................................................................................................... 348 Klasa Zend_Form_Element_Button ....................................................................... 350 Klasa Zend_Form_Element_Captcha ..................................................................... 350 Klasa Zend_Form_Element_Checkbox .................................................................. 351 Klasa Zend_Form_Element_File ............................................................................ 351 Klasa Zend_Form_Element_Hash .......................................................................... 352 Klasa Zend_Form_Element_Hidden ...................................................................... 352 Klasa Zend_Form_Element_Image ........................................................................ 352 Klasa Zend_Form_Element_Multi ......................................................................... 353 Klasa Zend_Form_Element_MultiCheckbox ......................................................... 353 Klasa Zend_Form_Element_Multiselect ................................................................ 354 Klasa Zend_Form_Element_Password ................................................................... 354 Klasa Zend_Form_Element_Radio ........................................................................ 354 Klasa Zend_Form_Element_Reset ......................................................................... 355 Klasa Zend_Form_Element_Select ........................................................................ 355 Klasa Zend_Form_Element_Text ........................................................................... 356 Klasa Zend_Form_Element_Textarea .................................................................... 356 Klasa Zend_Form_Element_Submit ...................................................................... 356 Rozdziaä 28. Przetwarzanie formularza, czyli implementacja interfejsu CRUD ..... 359 Formularz Application_Form_Imie .............................................................................. 360 Operacje dwuetapowe ................................................................................................... 361 Tworzenie nowego rekordu .................................................................................... 361 Edycja rekordu ....................................................................................................... 362 Akcje interfejsu CRUD ................................................................................................ 362 Adresy URL akcji CRUD ............................................................................................. 363 Akcja index ................................................................................................................... 363 Akcja createform .......................................................................................................... 365 Akcja create .................................................................................................................. 366 Akcja delete .................................................................................................................. 368 Akcja edit ..................................................................................................................... 369 Akcja update ................................................................................................................. 370 Akcja show ................................................................................................................... 372 Parametryzacja kontrolera CRUD ................................................................................ 375 Implementacja klasy My_Crud_Controller .................................................................. 378 Rozdziaä 29. Dostosowywanie kodu HTML formularzy ........................................ 383 DomyĞlny kod HTML formularza klasy Zend_Form ................................................... 383 Funkcje pomocnicze formularzy .................................................................................. 384 Obiekty dekorujące i przebieg dekoracji ...................................................................... 386 DomyĞlne dekoratory klasy Zend_Form ...................................................................... 388 DomyĞlne dekoratory klasy Zend_Form_Element ....................................................... 389 Proces generowania kodu HTML formularza ............................................................... 390 Spis treĈci 7 Modyfikacja elementów form oraz dl ........................................................................... 391 Modyfikacja kodu HTML kontrolek formularza .......................................................... 392 Modyfikacja identyfikatora znacznika form ................................................................. 395 Definiowanie szablonu formularza ............................................................................... 396 Rozdziaä 30. Walidatory i filtry .......................................................................... 399 Filtrowanie i walidacja kontrolek formularza ............................................................... 400 Interfejs Zend_Filter_Interface ..................................................................................... 400 Klasa Zend_Validate_Abstract i jej pochodne .............................................................. 402 Filtry i walidatory kontrolek ......................................................................................... 404 Tytuá ksiąĪki ........................................................................................................... 404 Rok wydania ........................................................................................................... 405 Badanie numeru miesiąca ....................................................................................... 406 Badanie zaleĪnoĞci pomiĊdzy kilkoma kontrolkami .............................................. 407 Sprawdzanie liczb rzymskich od I do X ................................................................. 409 Walidacja kontrolek checkbox ............................................................................... 410 Sprawdzanie numeru ISBN .................................................................................... 411 Sprawdzanie poprawnoĞci liczby typu float ........................................................... 411 Walidacja przy uĪyciu wyraĪeĔ regularnych .......................................................... 411 Walidator kontrolki CAPTCHA ............................................................................. 412 Rozdziaä 31. Przesyäanie plików na serwer ........................................................ 417 Rozdziaä 32. Edycja zaleĔnoĈci relacyjnych ....................................................... 427 Klucze obce NOT NULL ............................................................................................. 427 Klucze obce NULL ....................................................................................................... 437 Rozdziaä 33. Podsumowanie ............................................................................ 445 CzöĈè VI Zabezpieczanie dostöpu do aplikacji ........................... 447 Rozdziaä 34. Pierwsza aplikacja zawierajñca formularz do logowania ................. 449 Umieszczanie kont uĪytkowników w bazie danych ...................................................... 450 Dodawanie konta .......................................................................................................... 450 Formularz do logowania ............................................................................................... 452 Kontroler autoryzacyjny ............................................................................................... 454 Czy uĪytkownik jest zalogowany? ............................................................................... 457 Zabezpieczanie dostĊpu do danych tylko dla zalogowanych uĪytkowników ............... 457 Rozdziaä 35. Zabezpieczanie haseä funkcjami skrótu ......................................... 461 Funkcja md5() ........................................................................................................ 461 Funkcja sha1() ........................................................................................................ 462 Skróty haseá .................................................................................................................. 462 Zmodyfikowana tabela user .......................................................................................... 463 Dodawanie konta .......................................................................................................... 464 Kontroler autoryzacyjny ............................................................................................... 465 Rozdziaä 36. Wysyäanie poczty ......................................................................... 471 Wysyáanie poczty przy uĪyciu Zend_Mail ................................................................... 471 Obiektowa implementacja wysyáania listów z hasáami ................................................. 474 Rozdziaä 37. Rejestracja uĔytkowników ............................................................ 477 Rejestracja uĪytkownika w systemie ............................................................................ 478 Resetowanie zapomnianego hasáa ................................................................................ 482 Zmiana hasáa ................................................................................................................. 487 8 Zend Framework od podstaw Rozdziaä 38. Ograniczanie uprawnieþ uĔytkowników ......................................... 493 Przykáadowe uprawnienia ............................................................................................. 494 Czy uĪytkownik ma uprawnienia do wykonania akcji? ................................................ 494 Implementacja klasy My_Crud_Auth_Controller ......................................................... 496 Modyfikacja kontrolera AuthController ....................................................................... 498 Polecenia nadające uprawnienia ................................................................................... 499 Ustalanie uprawnieĔ poleceniami ................................................................................. 502 Polecenia allow-action-access i disallow-action-access ......................................... 502 Polecenia grant i revoke ......................................................................................... 502 Polecenia set-readable i set-unreadable .................................................................. 502 Polecenia grant-editor-rules i revoke-editor-rules .................................................. 502 Polecenia grant-reader-rules i revoke-reader-rules ................................................. 503 Polecenie clear ....................................................................................................... 503 Rozdziaä 39. Modularyzacja aplikacji ................................................................ 507 Nazewnictwo klas zawartych w moduáach ................................................................... 508 Adresy URL akcji w module ........................................................................................ 509 Rozdziaä 40. Podsumowanie ............................................................................. 517 CzöĈè VII Dodatki ...................................................................... 519 Dodatek A UĔycie Doctrine w aplikacji Zend Framework ................................ 521 Instalacja zf-doctrine .................................................................................................... 521 Skorowidz .................................................................................... 527 Rozdziaä 4. i Wymiana szablonu HTML/CSS 35 Rozdziaä 4. Wymiana szablonu HTML/CSS Teraz zajmiemy siĊ udekorowaniem aplikacji gotowym szablonem HTML/CSS. Naj- pierw podzielimy widoki na dwa fragmenty: ukáad oraz treĞü. WyodrĊbniony ukáad bĊdzie zapisany w jednym pliku layout.phtml, widoki akcji bĊdą zaĞ generowaáy wy- áącznie treĞü zawartą na stronie. W ten sposób uproĞcimy nadanie spójnego wyglądu wszystkim stronom aplikacji. DekoracjĊ aplikacji pisanej w ZF szablonem HTML/CSS rozpoczynamy od wydania polecenia: zf enable layout W wyniku wydania powyĪszej komendy w folderze aplikacji pojawi siĊ plik: application/layouts/scripts/layout.phtml zaĞ w pliku configs/application.ini pojawi siĊ wpis: resources.layout.layoutPath = APPLICATION_PATH /layouts/scripts/ PowyĪsza reguáa modyfikuje przebieg wykonania aplikacji: generowanie strony WWW wysyáanej do przeglądarki bĊdzie odbywaáo siĊ przy uĪyciu pliku layout.phtml1. W pliku layout.phtml umieszczamy szablon strony WWW, czyli m.in. znaczniki html, head i body oraz elementy ustalające podziaá na nagáówek, menu, treĞü czy panele (np. div). TreĞü zawarta na stronie WWW jest generowana przez widoki akcji, które tym razem nie zawierają juĪ elementów html, head czy body. 1 JeĞli instrukcjĊ zawartą w pliku application.ini zakomentujesz, poprzedzając ją Ğrednikiem: ;resources.layout.layoutPath = APPLICATION_PATH /layouts/scripts/ wówczas plik layout.phtml nie bĊdzie wykorzystywany. Generowanie stron WWW bĊdzie przebiegaáo identycznie jak w pierwszych trzech rozdziaáach. Kod HTML wysyáany do przeglądarki bĊdzie w caáoĞci pochodziá z widoku akcji. 36 CzöĈè I i Tworzenie stron WWW w Zend Framework Przeanalizujmy stronĊ WWW, która byáa generowana w przykáadzie trzecim jako wynik przetwarzania akcji wierszyk/pokaz (listing 3.3). W widoku akcji zawarty byá kompletny kod HTML strony wysyáanej do przeglądarki. Wprowadzając podziaá na szablon i treĞü, plik z listingu 3.3 dzielimy na dwa oddzielne pliki: szablon layout.phtml widoczny na listingu 4.1 oraz widok przedstawiony na li- stingu 4.2. Listing 4.1. Szablon layout.phtml dla strony z listingu 3.3 !DOCTYPE... html xmlns= http://www.w3.org/1999/xhtml xml:lang= pl lang= pl head title Wyliczanka /title meta http-equiv= Content-Type content= text/html; charset=utf-8 / /head body ?php echo $this- layout()- content ? /body /html Listing 4.2. TreĞü wyodrĊbniona ze strony 4.1 h1 Ene, due /h1 p Ene, due, rike, fake br / Torbe, borbe, ósme, smake br / Eus, deus, kosmateus br / I morele baks. /p Zwróü uwagĊ, Īe szablon aplikacji widoczny na listingu 4.1 zawiera specjalną in- strukcjĊ: ?php echo $this- layout()- content ? Powoduje ona umieszczenie w szablonie wyniku przetwarzania akcji. W ten sposób podczas wykonywania aplikacji dwa oddzielne pliki z listingów 4.1 oraz 4.2 są áączo- ne w jeden dokument z listingu 3.3, który jest nastĊpnie wysyáany do przeglądarki. Przykäad 4. Wierszyk pt. Dwa kabele Przygotuj stronĊ WWW, która bĊdzie prezentowaáa treĞü wiersza pt. Dwa kabele. Zadanie wykonaj tak, by wierszyk byá prezentowany na stronie akcji index/index. W rozwią- zaniu utwórz szablon layout.phtml. Ukáad strony WWW zapisz w pliku layout.phtml, treĞü wiersza zaĞ — w widoku akcji index/index (tj. w pliku index.phtml). Wykorzystaj szablon zawarty w folderze html-css-template/. TreĞü wiersza oraz folder html-css-template/ są zawarte w pliku 04-start.zip, który znajdziesz pod adresem ftp://ftp.helion.pl/przyklady/zendfr.zip. Wykonana strona powinna wyglądaü tak jak na rysunku 4.1. Rozdziaä 4. i Wymiana szablonu HTML/CSS 37 Rysunek 4.1. Strona z wierszem pt. Dwa kabele ROZWIðZANIE Krok 1. Utwórz nowy projekt ZF Utwórz nowy projekt PHP, który wykorzystuje ZF. Projekt nazwij dwa-kabele. Utwo- rzenie nowego projektu bĊdzie równowaĪne wykonaniu komendy: zf create project . dwa-kabele NastĊpnie w pliku public/.htaccess dodaj reguáy: SetEnv APPLICATION_ENV development DirectoryIndex index.php W zaleĔnoĈci od swoich preferencji wszystkie projekty omówione w ksiñĔce mo- Ĕesz wykonaè w wierszu poleceþ lub w Ĉrodowisku NetBeans. Krok 2. Wäñcz przetwarzanie szablonu layout.phtml Wydaj komendĊ: zf enable layout 38 CzöĈè I i Tworzenie stron WWW w Zend Framework W folderze aplikacji pojawi siĊ plik application/layouts/scripts/layout.phtml. Jego za- wartoĞü jest przedstawiona na listingu 4.3. Listing 4.3. DomyĞlna zawartoĞü pliku layout.phtml ?php echo $this- layout()- content ? Krok 3. Dostosuj widok akcji index/index W widoku akcji index/index wprowadĨ treĞü wierszyka. Zarys pliku application/ views/scripts/index/index.phtml jest przedstawiony na listingu 4.4. Listing 4.4. Fragment widoku index.phtml h2 Wđodzimierz Gajda /h2 h3 Dwa kabele /h3 p Czasem tak sie dziwnie skđada, br / Ľe gdy nic nie zapowiada br / Ľadnych nieszczúħè czy frustracji, br / Jakiħ smyk wkroczy do akcji br / I, byè moľe, bez zđych chúci, br / Sielankú ojcu zamæci. br / br / ... Krok 4. Zmieþ szablon HTML/CSS W pliku layout.phtml dodaj znaczniki HTML ustalające wygląd generowanej strony WWW. Zadanie mamy rozwiązaü, wykorzystując szablon zapisany w folderze 03-start/ html-css-template/. Plik 04-start/html-css-template/index.html jest przedstawiony na listingu 4.5. Listing 4.5. Szablon index.html, którego chcemy uĪyü w projekcie dwa-kabele !DOCTYPE... html xmlns= http://www.w3.org/1999/xhtml xml:lang= pl lang= pl head title template /title meta http-equiv= Content-Type content= text/html; charset=utf-8 / link rel= stylesheet type= text/css href= css/style.css media= screen / link rel= stylesheet type= text/css href= css/print.css media= print / /head body div id= pojemnik h1 id= naglowek Wiersze i wierszyki... /h1 div id= tekst p Lorem ipsum... /p /div Rozdziaä 4. i Wymiana szablonu HTML/CSS 39 div id= dol /div /div /body /html Znaczniki z listingu 4.3 naleĪy umieĞciü w pliku layout.phtml, tak jak pokazano na li- stingu 4.6. Listing 4.6. Szablon layout.phtml, który spowoduje, Īe strona z wierszem bĊdzie wyglądaáa tak jak na rysunku 4.1 !DOCTYPE... html xmlns= http://www.w3.org/1999/xhtml xml:lang= pl lang= pl head title Wierszyk /title meta http-equiv= Content-Type content= text/html; charset=utf-8 / link rel= stylesheet type= text/css href= css/style.css / link rel= stylesheet type= text/css href= css/print.css media= print / /head body div id= pojemnik h1 id= naglowek Wiersze i wierszyki... /h1 div id= tekst ?php echo $this- layout()- content; ? /div div id= dol /div /div /body /html Kod HTML generowanej strony WWW naleĪy sformatowaü stylami CSS zawartymi w plikach html-css-template/css/style.css oraz html-css-template/css/print.css. Style z pliku style.css są przeznaczone dla monitorów, a style z pliku print.css — dla urządzeĔ drukarek. Pliki style.css oraz print.css kopiujemy z folderu html-css-template/css/ do folderu public/css/2. Modyfikowanie szablonu aplikacji koĔczymy, kopiując pliki gra- ficzne z folderu html-css-template/images/ do folderu public/images/. W celu sprawdzenia wyglądu aplikacji odwiedĨ za pomocą przeglądarki adres: http://localhost/dwa-kabele/public/ PowinieneĞ ujrzeü stronĊ taką jak na rysunku 4.1. JeĞli chcesz poznaü funkcjĊ stylów print.css, wykonaj w przeglądarce operacjĊ Plik/Podgląd wydruku. Ujrzysz taką stronĊ jak na rysunku 4.2. 2 Foldery public/css/ oraz public/images/ naleĪy utworzyü samodzielnie. 40 CzöĈè I i Tworzenie stron WWW w Zend Framework Rysunek 4.2. Podgląd wydruku strony z rysunku 4.1 DziĊki zastosowaniu w pliku print.css wáaĞciwoĞci: display: none elementy dekoracyjne zostaáy usuniĊte i nie pojawią siĊ na wydruku. Pliki graficzne tworzñce szablon HTML/CSS z rysunku 4.1 nazywajñ siö gora.png, naglowek.png, pojemnik.png i stopka.png. Pliki te nie wystöpujñ w kodzie HTML, a wyäñcznie w kodzie CSS. W projekcie nie korzystamy ze znacznika img: img src= alt= / Pliki PNG stanowiñ täo wybranych elementów HTML i sñ doäñczane do strony przy uĔyciu wäaĈciwoĈci background, np.: body { background: #e8edef url( ../images/gora.png ) repeat-x; margin: 0; font-family: Georgia, serif; } ćcieĔki do plików graficznych sñ wzglödne. Prowadzñ z pliku style.css do folderu images/. Rozdziaä 4. i Wymiana szablonu HTML/CSS 41 Adresy strony z wierszem W wykonanej aplikacji strona akcji index/index jest dostĊpna pod szeĞcioma ad- resami URL: http://localhost/dwa-kabele/public/ http://localhost/dwa-kabele/public/index.php http://localhost/dwa-kabele/public/index.php/ http://localhost/dwa-kabele/public/index.php/index http://localhost/dwa-kabele/public/index.php/index/index http://localhost/dwa-kabele/public/index.php/index/index/ Tylko dwa pierwsze adresy bĊdą powodowaáy wyĞwietlenie strony WWW ozdobionej stylami CSS. Cztery dolne adresy, czyli: http://localhost/dwa-kabele/public/index.php/ http://localhost/dwa-kabele/public/index.php/index http://localhost/dwa-kabele/public/index.php/index/index http://localhost/dwa-kabele/public/index.php/index/index/ bĊdą wyĞwietlaáy stronĊ WWW pozbawioną stylów CSS. Dzieje siĊ tak dlatego, Īe ĞcieĪka prowadząca do stylów CSS jest zapisana w pliku layout.phtml jako wzglĊdna: link rel= stylesheet type= text/css href= css/style.css / Style zostaną wiĊc odnalezione wyáącznie wtedy, gdy znajdują siĊ w stosunku bieĪą- cego adresu URL w podfolderze css/. Skorowidz #, 57 $_belongsTo, 343 $_decorators, 387 $_element, 387 $_name, 148 $_page, 129 $bind, 163, 171, 172, 173 $cfg, 120 $defaultsArray, 119 $fetchMode, 163 $form, 417 $router, 110 $sql, 163, 172, 244 $table, 171 $where, 171, 173 .htaccess, 13, 14, 25, 63, 83 __construct(), 185 __toString(), 183, 201, 203, 339 _initAdresy(), 111 _insert(), 339 _update(), 339 404 (báąd), 63 A abbr(), 266 action helpers, 303 addDecorator(), 387, 393 addElement(), 344, 346 admin, 503 adres domenowy, 81 konwersja, 50 wewnĊtrzny, 49, 51 zewnĊtrzny, 49, 51 akcja, 17 show, 249, 250, 289, 309 akcje referencyjne, 216 allow-action-access, 499, 502 Alnum, 401, 403 Alpha, 401, 403 analiza odpowiedzi HTTP, 71 animacja, 44 API, 243 appendBody(), 312 appendContent(), 452 application, 12 application.ini, 90, 99, 101, 105, 107, 113, 123, 133 APPLICATION_ENV, 92 Application_Form_Imie, 360 APPLICATION_PATH, 91 atak typu brute-force, 468 SQL Injection, 165 Auth, 457 AuthController, 454, 465 AUTO INCREMENT, 142 automatyczne generowanie wartoĞci slug, 339 B BaseName, 401 basePath, 105 baseUrl(), 46, 48, 56, 67 baza danych (projekt), 139 beginTransaction(), 162 Between, 403 biblioteki Dojo, 101 bind(), 182 blokowanie dostĊpu do plików, 84 báąd 404, 63 báĊdny adres URL, 63 Boolean, 401 Bootstrap, 108, 109 bootstrap(), 109 Bootstrap.php, 12, 94, 95, 133 brute-force, 468 528 Zend Framework od podstaw C cachemanager, 101 CamelCaseToUnderscore, 402 CASCADE, 216 charset, 105 checkbox, 410 clear, 499, 503 clearDecorators(), 387 clearElements(), 346 collate, 146 columns(), 182 commit(), 163 Compress, 401 configs, 12 contentType, 105 Controller, 13 controllers, 12 count(), 194 create, 361, 366 CREATE SCHEMA IF NOT EXISTS, 146 TABLE, 146 createform, 361, 365 createRow(), 191 Cross Site Request Forgery, 399 Scripting, 399 CRUD, 359, 427, 445 current(), 194 D DaneProvider, 318 Database/Forward Engineer, 144, 175 Date, 403 db, 101, 102 DbTable, 148 Deccription, 389 Decompress, 401 Decrypt, 401 default Action, 33 defaultAttachOrder, 117 defaultControllerName, 33 define(), 91 delete, 368 delete(), 162, 170, 173, 186, 188, 193 dependent table, 212 Description, 391 destination table, 212 Digits, 401, 403 Dir, 401 DirectoryIndex, 25 dirname(), 92 disallow-action-access, 499, 502 display: none, 40 distinct(), 182 dáugie nazwy metod, 223 docs, 13 Doctrine (biblioteka), 521 doctype, 105 Dojo, 101 domena, 81, 86 domyĞlna akcja, 59 strona, 15, 16 dostĊp do akcji (zabezpieczenie), 493 aplikacji, 517 bazy danych, 101, 176, 243 plików, 83 DROP SCHEMA IF EXISTS, 146 E edit, 362, 369 edycja rekordu, 362 elementy dekoracyjne, 40 EmailAddress, 403 encje (konwersja), 266 Encrypt, 401 error, 12, 13, 63 Errors, 389, 391 F F6, 22 factory(), 158 fetchAll(), 149, 161, 165, 173, 178, 186, 190, 201, 339 fetchAssoc(), 161, 167 fetchCol(), 161, 166, 173 fetchOne(), 161, 167, 173 fetchPairs(), 162, 167, 173 fetchRow(), 161, 164, 173, 191, 249 filtrowanie, 399 find(), 186, 189, 249 findOneBySlug(), 339 Float, 403 fluent interface, 184 flush privileges, 146 foreign key, 211 form, 383 Form, 391, 395 formatowanie stylami CSS, 39 formButton(), 384 Skorowidz 529 formCheckbox(), 384 FormElements, 391 formTextarea(), 384 formularz do logowania, 452 edycyjny, 427 na stronie WWW, 346 rejestracyjny, 478 forUpdate(), 182 from(), 182 frontController, 101 frontController (opcje konfiguracyjne ), 103 funkcja pomocnicza, 303 skrótu, 461, 517 G Generate DROP SCHEMA, 144 get(), 125 getAdapter(), 185 getConnection(), 159 getDecorator(), 387 getDecorators(), 387 getElement(), 346 getElements(), 346 getInvokeArg(), 111 getMimetypeOnExt, 310 getPage(), 129 getResource(), 110, 111 getResponse(), 312 getRow(), 194 getTableOfContents(), 273 getValues(), 361, 400 Gmail, 472 grant, 499, 502 grant all, 146 grant-editor-rules, 499, 502 grant-reader-rule, 499 grant-reader-rules, 503 GreaterThan, 403 group(), 182 H hash table, 229 hasáo konta root, 147 headLink(), 106, 108 headMeta(), 107 headScript(), 106, 108 headStyle(), 106 headTitle(), 106, 108, 117 heaving(), 182 Hello, world!, 11 helpers, 12 Hex, 403 hiperáącze, 57 Hostname, 403 href, 57 html2slug(), 266 HtmlEntities, 401 htmlGetFirstMatch(), 275 HtmlTag, 389, 391 HTTP/1.1 404 Not Found, 72 I identyfikacja aplikacji, 101 implementacja wáasnej wtyczki, 123, 133 importowanie bazy danych, 333 InArray, 403 index, 12, 13, 363, 454 index.php, 13, 14, 95 index.phtml, 12 indexAction(), 13, 177 IndexController.php, 95 inicjalizacja zasobów, 133 init(), 125, 129 inlineScript(), 106 insert(), 149, 162, 169, 173, 186, 187 insertIfNotExists(), 339 Int, 401, 403 interfejs API, 243 do rejestracji uĪytkowników, 477 dostĊpu do baz danych, 243 obiektowy, 245 tablicowy, 244, 245 Ip, 403 Isbn, 403 iso2utf8(), 264 ISO-8859-2, 264 isPost(), 361 isValid(), 361, 400 J join(), 183 joinCross(), 183 joinFull(), 183 joinFullUsing(), 183 joinInner(), 183 joinLeft(), 183 joinLeftUsing(), 183 joinNatural(), 183 joinRight(), 183 530 joinRightUsing(), 183 joinUsing(), 183 jQuery LightBox, 417 K klasa, 13 klucz kod gáówny, 142, 211, 360 obcy, 211, 215, 427, 437 biblioteki Dojo, 101 SQL zaprojektowanej bazy danych, 144 korzystanie w jednej aplikacji z kilku poáączeĔ z bazami danych, 101 kodowanie, 140 kolekcja kontrolek, 343 komunikat diagnostyczny, 452 o báĊdach, 33 konfiguracja moduáów aplikacji, 101 poczty elektronicznej, 101 sesji, 101 zasobów aplikacji (rĊczna), 108 konto, 450 kontroler, 17 aplikacji, 13 usuwanie, 30 kontrolki formularza, 344 konwencje nazewnicze, 95 konwersja adresu, 50, 51 obiektu w napis, 339 L Label, 389, 391 lastInsertId(), 162, 169 layout, 99, 101, 103, 107 layout.phtml, 101, 114, 121 LessThan, 403 library, 13 limit(), 183 limitPage(), 183 litery duĪe na maáe, 266 LiveHTTPHeaders, 71, 310 loadDefaultDecorators(), 387 locale, 101 log, 101 login, 454, 455 logout, 454 Zend Framework od podstaw M mail, 101 mailNewPassword(), 474 mapa witryny, 101 mapowanie adresów URL, 66 md5(), 461, 462 mechanizm przywracania dostĊpu, 471 menu, 303 gáówne, 339 nawigacyjne, 101 merge(), 120 metoda uruchamiania projektu, 21 mime, 310 mod_rewrite, 14 models, 12 modules, 101 moduá, 507 adresy akcji, 509 nazwa klasy, 508 multidb, 101, 243 My_Crud_Auth_Controller, 496 My_Crud_Controller, 378, 496 My_Mail, 474 My_Mail_Gmail, 474 My_Mail_Netart, 474 My_Mime, 310 My_Page, 126 My_Validate_User, 485 MySQL Workbench, 139, 213, 230 N nagáówek HTTP, 71 naleĪy do, 343 named parameters, 165 navigation, 101 nazwa akcji, 14 bazy danych (dywiz), 175 domyĞlnego kontrolera, 33 domyĞlnej akcji, 33 konta, 480 metody, 14 pliku .php, 14 projektu, 20 widoku, 14 NetBeans, 19 NO ACTION, 216 notacja wielbáądzich garbów, 28 NotEmpty, 403 nowe konto, 464 Null, 401 NULL, 215 Skorowidz 531 obiekt nadrzĊdny, 343 obsáuga báĊdnych ĪądaĔ HTTP, 15 báĊdu 404, 65 transakcji, 173 odpowiedzi wysyáane przez serwer WWW, 71 odwoáania, 43 báĊdne, 60 odzyskiwanie hasáa, 517 opcje konfiguracyjne, 102 operacja C, 361 U, 362 order(), 183 orHeaving(), 183 orWhere(), 183 owner, 343 O P page, 126 page.extension = php , 121 page.title.content, 117 page.title.separator, 117 pamiĊü podrĊczna, 101 parent table, 212 parseArticle(), 274 partial view, 289 partial(), 289 pdo_mysql, 158 placeholders, 165 poczta elektroniczna, 471 pojemniki (w kodzie SQL), 165 pokazAction(), 31 polskie znaki diakrytyczne, 266 poáączenie w trybie leniwym, 159 z kilkoma bazami, 243 z serwerem bazodanowym (instrukcje), 243 populate(), 361 porządek rekordów (modyfikacja), 339 positional parameters, 165 PostCode, 403 powiązania relacyjne, 339 n:m, 232 preDispatch(), 457, 517 PregReplace, 401 primary key, 211 projekt (utworzenie nowego), 11 przetwarzanie szablonu, 37 layout.phtml, 89 przyjazne adresy, 339 public, 13, 25 function 173 publikacja witryny w Internecie, 75 Put NetBeans metadata into a separate directory, 23 query(), 162, 172 quote(), 162, 172 quoteInto(), 162, 173 Q R randomPassword(), 482 reader, 503 RealPath, 401 realpath(), 92 referential actions, 216 Regex, 411 RegEx, 403 reguáa, 58 rekord nadrzĊdny, 222 rekordy powiązane relacją, 219 zaleĪne, 220, 234, 339 relacje, 245 1:n, 211, 213, 215 n:m, 229, 230 konfiguracyjna, 49 konfigurująca wirtualny serwer stron WWW, 81 translacji, 61, 77, 258 removeDecorator(), 387 render(), 386, 387 reset(), 183 resetowanie hasáa, 471, 482 resources, 99 RESTRICT, 216 revoke, 499, 502 revoke-editor-rules, 499, 502 revoke-reader-rules, 499, 503 rĊczna konfiguracja zasobów aplikacji, 108 robot internetowy, 101 rollBack(), 163 root, 147, 503 router, 95, 99, 101, 104, 108 routing, 51 rozszerzenia, 309 Run Project, 22 532 Zend Framework od podstaw S ć ĞcieĪki dostĊpu, 85 Ğrodowisko NetBeans, 19 T tabela docelowa, 212 haszująca relacji, 229 skrzyĪowaĔ, 229 Ĩródáowa relacji, 212 tablica asocjacyjna, 153 napisów, 244 tests, 13 táumaczenie na inne jĊzyki, 101 toArray(), 193, 194 translacja adresów, 57, 101, 298 translate, 101 tryb leniwy, 272 try-catch, 159 tworzenie akcji, 89 kontrolera, 89 nowego konta, 464 projektu, 20, 89 rekordu, 361 typ danych, 309 mime, 310 tytuá strony, 78 U udostĊpnianie zasobów (na stronie WWW), 309 unauthorizedAction(), 498 UnderscoreToCamelCase, 402 unikalny tytuá strony, 79 union(), 183 update, 362, 370 update(), 162, 171, 173, 186, 189 uprawnienia, 493, do wykonania akcji, 494 uproszczone napisy, 339 useragent, 101 userHasAccess(), 494 UsuĔ, 30 usuwanie akcji, 89 kontrolera, 30, 89 utf8, 146 salt, 463 save(), 193 scripts, 12 seek(), 194 select(), 163, 186, 190 send(), 474 session, 101 SET DEFAULT, 217 NULL, 216 setAction(), 361 setDecorators(), 387 setDefaultAdapter(), 185 setDefaultAttachOrder(), 106 setElements(), 346 setFetchMode(), 162, 168 setFromArray(), 193 setHeader(), 312 setMethod(), 361 set-readable, 499, 502 setSeparator(), 106 setSlug(), 286, 339 set-unreadable, 499, 502 sha1(), 461, 462 show, 249, 250, 289, 309, 372 showAction(), 339 simplexml_load_file(), 151 skrócenie generowanego napisu do zadanej dáugoĞci, 266 skrypt wypeániający bazĊ danych, 207 slug, 284, 339 source table, 212 spis treĞci, 276 sposób uruchamiania projektu, 21 SQL, 174 injection, 399 string2slug(), 266 StringLength, 403 StringToLower, 401 StringToUpper, 401 StringTrim, 401 StripNewlines, 401 StripTags, 401 strona báĊdu 404, 69 SyntaxHighlighter, 270 system uprawnieĔ, 493, 517 szablon HTML/CSS, 35 layout.phtml, 114 strony WWW, 35 Skorowidz UTF-8, 264 utf8_polish_ci, 140, 146 utworzenie nowego projektu, 11 view, 101, 105, 123 helper, 303 ViewHelper, 389, 391 views, 12 V W walidacja, 399 where(), 183 widok akcji, 38 aplikacji, 101 czĊĞciowy, 289, 339 wielojĊzyczne wersje aplikacji, 101 WINDOWS-1250, 264 wáasne implementacje metod, 223 metody, 111, 133 wtyczki, 123 wáaĞciciel, 343 wstawianie rekordu do bazy danych, 339 tabeli, 149 wypeánianie bazy danych rekordami, 152 wyraĪenia SQL, 174 wysyáanie poczty elektronicznej, 471 wyszukiwanie rekordów na podstawie wartoĞci slug, 339 o zadanej wartoĞci klucza gáównego, 249 wyĞwietlenie komunikatu: Brak dostĊpu, 498 Z zabezpieczanie dostĊpu do aplikacji, 449 danych, 457 zapisywanie informacji diagnostycznych, 101 zasoby zewnĊtrzne, 43 zawartoĞü tabeli bazy danych, 149 zdjĊcie, 44 Zend_ Form_Element_File, 417 Zend_Application, 94, 95 Zend_Application_Bootstrap_Bootstrap, 95 Zend_Application_Resource_View, 123 Zend_Controller_Action, 95 Zend_Controller_Response_Http, 312 Zend_Db, 157, 158, 243, 521 533 Zend_Db::FETCH_ASSOC, 168 Zend_Db::FETCH_BOTH, 168 Zend_Db::FETCH_NUM, 168 Zend_Db::FETCH_OBJ, 168 Zend_Db_Adapter_Abstract, 157, 160, 244 Zend_Db_Adapter_Db2, 158 Zend_Db_Adapter_Mysqli, 158 Zend_Db_Adapter_Oracle, 158 Zend_Db_Adapter_Pdo_Ibm, 157 Zend_Db_Adapter_Pdo_Mssql, 157 Zend_Db_Adapter_Pdo_Mysql, 157 Zend_Db_Adapter_Pdo_Oci, 157 Zend_Db_Adapter_Pdo_Pgsql, 157 Zend_Db_Adapter_Pdo_Sqlite, 157 Zend_Db_Adapter_Sqlsrv, 158 Zend_Db_Expr, 157 Zend_DB_Expr, 174 Zend_Db_Select, 157, 181, 182 Zend_Db_Statement_Exception, 187 Zend_Db_Table, 157, 185, 186, 243 Zend_Db_Table_Relationships, 157 Zend_Db_Table_Row, 157, 193, 243 Zend_Db_Table_Rowset, 157, 194, 243 Zend_Filter_Interface, 400 Zend_Form_Element, 348, 400, 445 Zend_Form_Element_ Text, 348 Zend_Form_Element_Button, 350 Zend_Form_Element_Captcha, 350 Zend_Form_Element_Checkbox, 351 Zend_Form_Element_File, 351 Zend_Form_Element_Hash, 352 Zend_Form_Element_Hidden, 352 Zend_Form_Element_Image, 352 Zend_Form_Element_MultiCheckbox, 353 Zend_Form_Element_Multiselect, 354 Zend_Form_Element_Password, 354 Zend_Form_Element_Radio, 354 Zend_Form_Element_Reset, 355 Zend_Form_Element_Select, 355 Zend_Form_Element_Submit, 348, 356 Zend_Form_Element_Text, 356 Zend_Form_Element_Textarea, 356 Zend_Mail, 471 Zend_Validate_Abstract, 402 Zend_Validate_Db_NoRecordExists, 403 Zend_Validate_File_Exists, 403 Zend_Validate_File_NotExists, 403 zf create action, 89 zf create controller, 89 zf create form, 445 zf create project, 12, 89 zf enable layout, 56, 89, 114 zf-doctrine, 521 zfproject.xml, 13 534 Zend Framework od podstaw záoĞliwy kod, 399 zmiana hasáa, 487 znaczniki HTML (usuwanie), 266 znaki róĪne od liter i cyfr (zastĊpowanie separatorem), 266
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Zend Framework od podstaw. Wykorzystaj gotowe rozwiązania PHP do tworzenia zaawansowanych aplikacji internetowych
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: