PHP, MySQL i MVC. Tworzenie witryn WWW opartych na bazie danych - Helion
ISBN: 978-83-283-2409-1
stron: 528, Format: ebook
Data wydania: 2015-11-24
Księgarnia: Helion
Cena książki: 59,25 zł (poprzednio: 79,00 zł)
Oszczędzasz: 25% (-19,75 zł)
- Model architektoniczny MVC
- Szablony PHP i szablony Smarty
- Wizualne projektowanie baz danych
- Mapowanie relacyjno-obiektowe
- Oprogramowanie Propel oraz Doctrine
- Formaty TXT, XML oraz XLS
Duża część popularnych serwisów internetowych dostępnych obecnie w sieci działa w oparciu o relacyjne bazy danych i język PHP. Tandem ten stał się już niemal standardem w dziedzinie tworzenia rozbudowanych, dynamicznych witryn i aplikacji WWW zarówno w przypadku wielkich przedsiębiorstw, jak i hobbystów pragnących dzielić się swoimi doświadczeniami za pośrednictwem internetu. PHP i MySQL doskonale nadają się do praktycznej realizacji wzorca architektonicznego MVC, ułatwiającego opracowywanie nawet najbardziej złożonych projektów. Dzięki odseparowaniu poszczególnych komponentów aplikacji i podzieleniu jej na mniejsze elementy funkcjonalne tworzona witryna jest znacznie wygodniejsza w zarządzaniu i modyfikacji niż serwisy oparte na innych wzorcach.
Wzorzec architektoniczny MVC — choć opracowany z myÅ›lÄ… o uproszczeniu życia programistom i twórcom witryn WWW — poczÄ…tkowo bardzo trudno zrozumieć, a postÄ™p w dziedzinie tworzenia stron internetowych wymusza ciÄ…gÅ‚e dostosowywanie siÄ™ do panujÄ…cych na rynku trendów i staÅ‚e odÅ›wieżanie wiedzy na ten temat. PomocÄ… posÅ‚uży tu odpowiednia książka — z pewnoÅ›ciÄ… może niÄ… być "PHP, MySQL i MVC. Tworzenie witryn WWW opartych na bazie danych ". W przystÄ™pny sposób prezentuje ona podstawy zastosowania architektury MVC, pokazuje wykorzystanie dwóch najważniejszych rozwiÄ…zaÅ„ do mapowania obiektowo-relacyjnego, podsuwa techniki tworzenia funkcjonalnych interfejsów użytkownika aplikacji WWW oraz proponuje stosowanie różnych formatów do przechowywania danych. Poszczególne zagadnienia ilustrowane sÄ… przykÅ‚adami i praktycznymi projektami, dziÄ™ki czemu Å‚atwiej zrozumieć opisywane techniki i wykorzystać je w swoich aplikacjach. ZdobytÄ… wiedzÄ™ pomagajÄ… utrwalić liczne ćwiczenia do samodzielnego wykonania.
- Podstawy użycia wzorca MVC
- Moduły, akcje, widoki, szablony PHP i szablony Smarty
- Reguły translacji przyjaznych adresów URL
- Używanie baz danych w projektach WWW
- Wizualne projektowanie baz danych i mapowanie relacyjno-obiektowe
- Wykorzystanie oprogramowania Propel oraz Doctrine
- Metody zwiększania funkcjonalności interfejsów aplikacji internetowych
- Stronicowanie wyników i przewijanie rekordów
- Chmura tagów
- Korzystanie z formatów TXT, XML, XLS
- Odczyt plików i wypełnianie bazy danych
- Pliki skompresowane i osadzanie danych binarnych w plikach XML
Poznaj w praktyce nowoczesne metody
tworzenia zaawansowanych aplikacji WWW!
Wszystkie projekty omówione w książce umieszczono na płycie dołączonej do książki. Każdy z projektów jest dostępny jako kompletne, działające rozwiązanie, dokładnie przetestowane.
Osoby które kupowały "PHP, MySQL i MVC. Tworzenie witryn WWW opartych na bazie danych", wybierały także:
- SQL. Kurs video. Kompendium wiedzy na podstawie MySQL 159,00 zł, (63,60 zł -60%)
- PHP i MySQL. Kurs video. Tw 149,00 zł, (67,05 zł -55%)
- MySQL. Kurs video. Od podstaw do zagadnień zaawansowanych. Tworzenie i analizowanie baz danych 59,00 zł, (26,55 zł -55%)
- Wydajna praca z MySQL. Efektywne i bezpieczne zarz 89,00 zł, (44,50 zł -50%)
- MySQL. Jak zaprojektowa 129,00 zł, (64,50 zł -50%)
Spis treści
PHP, MySQL i MVC. Tworzenie witryn WWW opartych na bazie danych eBook -- spis treści
Wstęp (13)
Część I: Akcje, widoki, translacje adresów URL i bazy danych, czyli podstawy użycia MVC (15)
Rozdział 1. Hello world - pierwsza aplikacja korzystająca z MVC (17)
- Projekt 1.1. Hello world! (18)
- Krok pierwszy: utworzenie modułu main (19)
- Krok drugi: utworzenie akcji hello w module main (19)
- Krok trzeci: utworzenie układu witryny WWW (20)
- Krok czwarty: reguła translacji adresu pierwszy-projekt.html na wykonanie akcji main/hello (20)
- Krok piÄ…ty: skrypt index.php (21)
- Pliki, które należy utworzyć (22)
- Uruchomienie projektu (23)
- Przebieg wykonania (24)
RozdziaÅ‚ 2. DoÅ‚Ä…czanie zewnÄ™trznych zasobów .css, .jpg, .js (27)
- Projekt 2.1. Wlazł kotek na schody... (28)
- Analiza ścieżek zawartych w kodzie HTML (31)
Rozdział 3. Błędy 404 (35)
- Projekt 3.1. Å»óÅ‚ta Turnia (36)
- OglÄ…danie strony bÅ‚Ä™du oraz nagÅ‚ówka HTTP (38)
Rozdział 4. Zmienne i widoki (41)
- Projekt 4.1. Data i godzina - szablon PHP (42)
- Projekt 4.2. Data i godzina - szablon Smarty (45)
- Projekt 4.3. Ojciec i syn - szablon PHP (47)
- Projekt 4.4. Ojciec i syn - szablony Smarty (49)
- Projekt 4.5. Stefan Żeromski: Zmierzch - szablon PHP (50)
- Projekt 4.6. Stefan Żeromski: Zmierzch - szablony Smarty (53)
- Projekt 4.7. Kolory CSS (54)
- Projekt 4.8. Kolory CSS - szablony Smarty (56)
Rozdział 5. Pre- i postprzetwarzanie (59)
- Projekt 5.1. Fraszki (60)
- Projekt 5.2. Fraszki - szablony Smarty (68)
RozdziaÅ‚ 6. Translacja adresów URL (71)
- Projekt 6.1. Kolędy (73)
- Analiza różnych rodzajów adresów URL (77)
- Dwukierunkowość konwersji adresów (78)
- Konwersje adresów w generowanych stronach WWW (79)
- Włączanie i wyłączanie translacji wyjściowych (80)
- Konwersja adresów URL przy użyciu funkcji pomocniczych (81)
- Implementacja funkcji pomocniczych w postaci wtyczek Smarty (82)
- Kilka zmiennych w adresach URL (83)
- Projekt 6.2. Ligi piłkarskie (84)
- Zmienne $path_prefix oraz ###PATH_PREFIX### (92)
Rozdział 7. Bazy danych (95)
- Wizualne projektowanie bazy danych (95)
- Oprogramowanie ORM (99)
- Konwersja pliku .mwb do formatu Propel XML (100)
- Konwersja pliku .mwb do formatu Doctrine YML (101)
- db-frame-tool (101)
- Propel - generowanie klas dostępu do bazy (102)
- ORM Propel - pierwsze kroki (104)
- Zestawienie wygenerowanych klas oraz najważniejszych metod (104)
- Podstawy użycia klas wygenerowanych przez Propel (105)
- Doctrine - generowanie klas dostępu do bazy (106)
- ORM Doctrine - pierwsze kroki (107)
- Zestawienie wygenerowanych klas oraz najważniejszych metod (107)
- Podstawy użycia klas wygenerowanych przez Doctrine (108)
- Projekt 7.1. Tatry (szablony PHP, Propel) (109)
- Krok pierwszy: projekt bazy danych (110)
- Krok drugi: generowanie klas dostępu do bazy danych (110)
- Krok trzeci: tworzenie pustej bazy danych (110)
- Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego (110)
- Krok piąty: zrzut wypełnionej bazy danych (113)
- Krok szósty: aplikacja prezentujÄ…ca zawartość bazy danych (114)
- Projekt 7.2. Tatry (szablony PHP, Doctrine) (116)
- Krok pierwszy: projekt bazy danych (116)
- Krok drugi: generowanie klas dostępu do bazy danych (116)
- Krok trzeci: tworzenie pustej bazy danych (117)
- Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego (117)
- Krok piąty: zrzut wypełnionej bazy danych (118)
- Krok szósty: aplikacja prezentujÄ…ca zawartość bazy danych (118)
- Projekt 7.3. Tatry (szablony Smarty, Propel) (119)
- Projekt 7.4. Tatry (szablony Smarty, Doctrine) (120)
Rozdział 8. Czego powinieneś nauczyć się z części pierwszej? (123)
Część II: Operowanie klasami wygenerowanymi przez Propel oraz Doctrine (129)
RozdziaÅ‚ 9. Wybieranie wszystkich rekordów z tabeli w zadanym porzÄ…dku (131)
- Propel - sortowanie rekordów (132)
- Doctrine - sortowanie rekordów (134)
- Projekt 9.1. SÅ‚ownik (Propel, PHP) (134)
- Krok pierwszy: projekt bazy danych (135)
- Krok drugi: generowanie klas dostępu do bazy danych (135)
- Krok trzeci: tworzenie pustej bazy danych (137)
- Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego (137)
- Krok piąty: zrzut wypełnionej bazy danych (138)
- Krok szósty: aplikacja prezentujÄ…ca zawartość bazy danych (138)
- Projekt 9.2. SÅ‚ownik (Doctrine, PHP) (141)
- Krok pierwszy: projekt bazy danych (141)
- Krok drugi: generowanie klas dostępu do bazy danych (141)
- Krok trzeci: tworzenie pustej bazy danych (142)
- Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego (142)
- Krok piąty: zrzut wypełnionej bazy danych (142)
- Krok szósty: aplikacja prezentujÄ…ca zawartość bazy danych (143)
Rozdział 10. Wybieranie pojedynczego rekordu (145)
- Propel (145)
- Doctrine (147)
- Projekt 10.1. Treny (Propel, PHP) (147)
- Identyfikacja trenu wewnÄ…trz akcji tren/show (151)
- Projekt 10.2. Treny (Doctrine, PHP) (153)
Rozdział 11. Relacje 1:n (157)
- Metody generowane przez Propel dla relacji 1:n (158)
- Doctrine i relacje 1:n (160)
- Projekt 11.1. Kontynenty, państwa, miasta (Propel, PHP) (162)
- Przygotowanie bazy danych (163)
- Aplikacja (167)
- Projekt 11.2. Kontynenty, państwa, miasta (Doctrine, PHP) (173)
- Rozszerzanie właściwości klas generowanych przez Doctrine (174)
- Wstawianie rekordów (176)
- Aplikacja (178)
Rozdział 12. Relacje n:m (181)
- Metody generowane przez Propel dla relacji n:m (182)
- Doctrine i relacje n:m (183)
- Projekt 12.1. Filmy (Propel, PHP) (184)
- Przygotowanie bazy danych (184)
- Aplikacja (187)
- Projekt 12.2. Filmy (Doctrine, PHP) (189)
- Propel. Sortowanie rekordów stojÄ…cych w relacji n:m (192)
- Projekt 12.3. Filmy (Propel, PHP, sortowanie) (192)
- Doctrine. Sortowanie rekordów stojÄ…cych w relacji n:m (193)
- Projekt 12.4. Filmy (Doctrine, PHP, sortowanie) (194)
Rozdział 13. Zagadnienia dodatkowe dotyczące warstw M oraz V (197)
- Czyszczenie zawartości bazy danych (197)
- Konwersja obiektu w napis (198)
- Konwersje toArray(), fromArray() (198)
- Warunkowe wstawianie nieistniejÄ…cych obiektów (200)
- Wielokrotne wykorzystanie widoku (201)
- Projekt 13.1. Aparaty foto (Propel, PHP) (202)
- Warstwa M (202)
- Wypełnianie bazy danych (205)
- Aplikacja (206)
- Projekt 13.2. Aparaty foto (Doctrine, PHP) (208)
- Rozszerzanie funkcjonalności klas wygenerowanych przez Doctrine (209)
- Wstawianie rekordów do bazy danych (211)
- Aplikacja (212)
RozdziaÅ‚ 14. Zapisywanie w bazie danych obrazów i plików binarnych (215)
- Zapisywanie w bazie danych zdjęć JPG (215)
- Prezentowanie zdjęć JPG zapisanych w bazie danych na stronie WWW (216)
- Zapisywanie w bazie danych dowolnych plików binarnych (218)
- Wysyłanie danych binarnych z bazy do przeglądarki (220)
- Projekt 14.1. NotH (Propel, PHP) (221)
- Skrypt wstaw.php (223)
- Aplikacja (224)
- Tytuły stron (225)
- Rozwijane menu pionowe (226)
- WartoÅ›ci atrybutów href oraz src w tekstach zapisanych w bazie danych (227)
- Projekt 14.2. NotH (Doctrine, PHP) (229)
- Skrypt wstaw.php (230)
- Aplikacja (230)
Rozdział 15. Akcje list i show, czyli publikowanie zawartości bazy danych w postaci witryny WWW (233)
- Projekt 15.1. Czcionki projektów CSS Zen Garden (Propel, PHP) (234)
- Aplikacja (235)
- Menu gÅ‚ówne witryny oraz tytuÅ‚y podstron (240)
Rozdział 16. Czego powinieneś nauczyć się z części drugiej? (243)
Część III: Zwiększanie funkcjonalności interfejsu aplikacji internetowej (245)
RozdziaÅ‚ 17. Kontekstowe hiperÅ‚Ä…cza do stron ze szczegóÅ‚owymi informacjami (247)
- Projekt 17.1. Angaże (szablony PHP, Propel) (248)
- Unikatowość kolumny slug (248)
- Pliki tekstowe o bardziej złożonej strukturze (250)
- Rozszerzenia warstwy M (251)
- Filtry konwertujÄ…ce generowany kod HTML (260)
- Aplikacja (261)
- Hiperłącza kontekstowe (263)
- Menu kontekstowe (264)
Rozdział 18. Następny, poprzedni, czyli przewijanie zawartości witryny WWW (267)
- Projekt 18.1. PHP. Praktyczne projekty (269)
- Ograniczenia kluczy obcych (270)
- Wstępne opracowanie aplikacji (271)
- Implementacja hiperłączy następny/poprzedni (276)
- HiperÅ‚Ä…cza link zawarte w nagÅ‚ówku strony WWW (285)
Rozdział 19. Wskaźnik położenia (287)
- Projekt 19.1. Kolekcja płyt DVD z fotografiami (288)
- Rozszerzanie klas dostępu do bazy danych (291)
- Wypełnianie bazy danych rekordami (295)
- Aplikacja (302)
- Translacje adresów stosujÄ…cych cztery zmienne URL (304)
- Tabela zdjęć wykonana bez użycia tabel HTML (305)
- Wskaźniki następny/poprzedni do przewijania zdjęć i kategorii (306)
- Efekt rollover ze wskaźnikiem wybranej opcji (307)
- Fotografie podążające za wskaźnikiem myszki (307)
- Wskaźnik breadcrumbs (310)
Rozdział 20. Sortowanie tabel (311)
- Projekt 20.1. Piłka nożna - sezon 2002/2003 (312)
- Wielokrotne klucze obce z tej samej tabeli (314)
- Sortowanie złączeń dla wielokrotnych kluczy (314)
- Wypełnianie bazy danych (317)
- Zarys aplikacji (320)
- Implementacja sortowalnych tabelek HTML (320)
Rozdział 21. Stronicowanie (331)
- Projekt 21.1. 33 ? (332)
- Automatyczne generowanie identyfikatorów slug dla rekordów o zdublowanych tytuÅ‚ach (333)
- Klasa Pager (335)
- Widok wskaźnika stronicowania (343)
- Prezentacja rekordów poddanych stronicowaniu (345)
- Kontekstowe stronicowanie rekordów (348)
Rozdział 22. Alfabet (351)
- Projekt 22.1. Imiona (351)
- Wybieranie alfabetu liter (352)
- Komponent wyświetlający alfabet (353)
- Prezentacja liter rozpoczynajÄ…cych siÄ™ od wybranej litery na stronie WWW (354)
- Umieszczanie kontrolki z listÄ… liter w szablonie layout.html (355)
RozdziaÅ‚ 23. Chmura tagów (357)
- Projekt 23.1. Katalog Open Clipart (358)
- Wypełnianie bazy danych (360)
- Waga sÅ‚ów kluczowych (363)
- Aplikacja (365)
Rozdział 24. Spis treści (371)
- Projekt 24.1. Artykuły (372)
- Wypełnianie bazy danych rekordami (373)
- Funkcje odpowiedzialne za odczytywanie i usuwanie fragmentów kodu HTML (376)
- Funkcje odpowiedzialne za tworzenie spisu treści (378)
- Kolorowanie składni (380)
- Aplikacja (381)
Rozdział 25. Czego powinieneś nauczyć się z części trzeciej? (383)
Część IV: Formaty danych (385)
RozdziaÅ‚ 26. Podstawy przetwarzania dokumentów XML w PHP (387)
- Klasa SimpleXML (387)
- Tworzenie obiektu SimpleXMLElement (388)
- DostÄ™p do wÄ™zÅ‚ów drzewa (389)
- Lista identycznych elementów (390)
- DostÄ™p do atrybutów (391)
- Przetwarzanie wszystkich elementów i ich atrybutów (391)
- Wielokrotne zagnieżdżenia (392)
- Język XPath (395)
- Przykładowe dokumenty XML dostępne w internecie (395)
- Kursy walut (395)
- Książki wydawnictwa Helion (397)
- Projekt 26.1. Turniej Czterech Skoczni (398)
- Aplikacja (400)
RozdziaÅ‚ 27. Generowanie dokumentów XML w PHP (403)
- Statyczne pliki XML (403)
- Generowanie dokumentu XML w PHP (405)
- Echo - drukowanie kodu XML (406)
- Generowanie XML na podstawie tablicy (407)
- Generowanie XML na podstawie pliku tekstowego (408)
- Zapisywanie kodu XML do pliku (409)
- Konwersja pliku tekstowego do formatu XML (409)
- Dane w formacie XML opisujÄ…ce witrynÄ™ WWW (410)
- Mapa witryny: sitemap.xml (410)
- Kanał RSS (411)
- Projekt 27.1. Kursy walut (412)
- Ustalanie adresów dokumentów XML z kursami walut (412)
- Projekt bazy danych (413)
- Wypełnianie bazy danych rekordami (413)
- Aplikacja (415)
- Kanał RSS (415)
- Mapa witryny (416)
- Wykresy kursów walut (418)
Rozdział 28. XML_Serializer, XML_Unserializer - dwukierunkowe transformacje tablic w XML (423)
- XML_Serializer (423)
- Konwersja tablicy w kod XML (423)
- Tablica asocjacyjna (424)
- Opcje (425)
- Tablica opcji (426)
- Jednowymiarowa tablica indeksowana (426)
- Wielowymiarowe tablice indeksowane (427)
- Atrybuty (428)
- Wybiórcze stosowanie atrybutów (429)
- Przekształcenia (430)
- XML_Serializer - przykłady (431)
- Projekt 28.1. Konwersja pliku nobel.txt (431)
- Projekt 28.2. Konwersja pliku mecze.txt (432)
- Projekt 28.3. Konwersja pliku tcs.txt (434)
- Klasa XML_Unserializer (436)
- Podstawowe użycie (436)
- Odczyt pliku (437)
- Parsing atrybutów (437)
- Konwersja formatu XML (439)
- Projekt 28.4. Konwersja jeden-w-wiele (439)
- Projekt 28.5. Konwersja wiele-w-jeden (440)
- Projekt 28.6. Klasyfikacja zwierzÄ…t (441)
- Wypełnianie bazy danych rekordami (442)
- Moduły i akcje aplikacji (443)
- Akcja main/drzewo (444)
- Kanał RSS (444)
- Generowanie statycznego dokumentu sitemap.xml (447)
Rozdział 29. Arkusze kalkulacyjne MS Excel XLS (449)
- Odczyt pliku XLS (449)
- Odczyt kilku arkuszy (451)
- Tworzenie pliku XLS (452)
- Wysyłanie arkusza do przeglądarki (453)
- Konwersja pliku tekstowego do formatu XLS (453)
- Konwersja pliku XLS do formatu tekstowego (454)
- Projekt 29.1. Generowanie danych autokomisu (455)
- Projekt 29.2. Autokomis (460)
- Wypełnianie bazy danych rekordami (460)
- Aplikacja (465)
RozdziaÅ‚ 30. Konwersja plików z danymi (467)
- Format danych tekstowych (467)
- Format danych XML (469)
- Format danych XLS (470)
- Projekt 30.1. Konwersja formatu TXT do formatu XML (470)
- Projekt 30.2. Konwersja formatu TXT do formatu XLS (474)
- Projekt 30.3. Konwersja formatu XML do formatu TXT (476)
- Projekt 30.4. Konwersja formatu XML do formatu XLS (477)
- Projekt 30.5. Konwersja formatu XLS do formatu TXT (478)
- Projekt 30.6. Konwersja formatu XLS do formatu XML (480)
- Projekt 30.7. Zestawienia artykuÅ‚ów "Magazynu INTERNET" (480)
- Aplikacja (483)
- Akcja list prezentujÄ…ca sortowalnÄ… i stronicowanÄ… tabelkÄ™ HTML (484)
- Akcja show prezentujÄ…ca sortowalnÄ… i stronicowanÄ… tabelkÄ™ HTML (486)
Rozdział 31. Skompresowane dokumenty XML zawierające dane binarne (489)
- Kodowanie base64 (490)
- Dekodowanie base64 (490)
- Kompresja danych (491)
- Dekompresja danych (492)
- Projekt 31.1. Format danych systemu do publikowania artykuÅ‚ów (493)
- Umieszczanie ilustracji, listingów, ramek i tabel w treÅ›ci artykuÅ‚u (495)
- Projekt 31.2. Konwersja artykułu z formatu tekstowego do spakowanego pliku XML (495)
- Projekt 31.3. System publikacji artykuÅ‚ów w postaci witryny WWW (498)
- Baza danych (499)
- Propel i dostęp tylko do wybranych kolumn tabeli (499)
- Wypełnianie bazy danych (501)
- Aplikacja (508)
Rozdział 32. Czego powinieneś nauczyć się z części czwartej? (511)
Skorowidz (513)
zzWstęp (13)
Część I: Akcje, widoki, translacje adresów URL i bazy danych, czyli podstawy użycia MVC (15)
Rozdział 1. Hello world - pierwsza aplikacja korzystająca z MVC (17)
- Projekt 1.1. Hello world! (18)
- Krok pierwszy: utworzenie modułu main (19)
- Krok drugi: utworzenie akcji hello w module main (19)
- Krok trzeci: utworzenie układu witryny WWW (20)
- Krok czwarty: reguła translacji adresu pierwszy-projekt.html na wykonanie akcji main/hello (20)
- Krok piÄ…ty: skrypt index.php (21)
- Pliki, które należy utworzyć (22)
- Uruchomienie projektu (23)
- Przebieg wykonania (24)
RozdziaÅ‚ 2. DoÅ‚Ä…czanie zewnÄ™trznych zasobów .css, .jpg, .js (27)
- Projekt 2.1. Wlazł kotek na schody... (28)
- Analiza ścieżek zawartych w kodzie HTML (31)
Rozdział 3. Błędy 404 (35)
- Projekt 3.1. Å»óÅ‚ta Turnia (36)
- OglÄ…danie strony bÅ‚Ä™du oraz nagÅ‚ówka HTTP (38)
Rozdział 4. Zmienne i widoki (41)
- Projekt 4.1. Data i godzina - szablon PHP (42)
- Projekt 4.2. Data i godzina - szablon Smarty (45)
- Projekt 4.3. Ojciec i syn - szablon PHP (47)
- Projekt 4.4. Ojciec i syn - szablony Smarty (49)
- Projekt 4.5. Stefan Żeromski: Zmierzch - szablon PHP (50)
- Projekt 4.6. Stefan Żeromski: Zmierzch - szablony Smarty (53)
- Projekt 4.7. Kolory CSS (54)
- Projekt 4.8. Kolory CSS - szablony Smarty (56)
Rozdział 5. Pre- i postprzetwarzanie (59)
- Projekt 5.1. Fraszki (60)
- Projekt 5.2. Fraszki - szablony Smarty (68)
RozdziaÅ‚ 6. Translacja adresów URL (71)
- Projekt 6.1. Kolędy (73)
- Analiza różnych rodzajów adresów URL (77)
- Dwukierunkowość konwersji adresów (78)
- Konwersje adresów w generowanych stronach WWW (79)
- Włączanie i wyłączanie translacji wyjściowych (80)
- Konwersja adresów URL przy użyciu funkcji pomocniczych (81)
- Implementacja funkcji pomocniczych w postaci wtyczek Smarty (82)
- Kilka zmiennych w adresach URL (83)
- Projekt 6.2. Ligi piłkarskie (84)
- Zmienne $path_prefix oraz ###PATH_PREFIX### (92)
Rozdział 7. Bazy danych (95)
- Wizualne projektowanie bazy danych (95)
- Oprogramowanie ORM (99)
- Konwersja pliku .mwb do formatu Propel XML (100)
- Konwersja pliku .mwb do formatu Doctrine YML (101)
- db-frame-tool (101)
- Propel - generowanie klas dostępu do bazy (102)
- ORM Propel - pierwsze kroki (104)
- Zestawienie wygenerowanych klas oraz najważniejszych metod (104)
- Podstawy użycia klas wygenerowanych przez Propel (105)
- Doctrine - generowanie klas dostępu do bazy (106)
- ORM Doctrine - pierwsze kroki (107)
- Zestawienie wygenerowanych klas oraz najważniejszych metod (107)
- Podstawy użycia klas wygenerowanych przez Doctrine (108)
- Projekt 7.1. Tatry (szablony PHP, Propel) (109)
- Krok pierwszy: projekt bazy danych (110)
- Krok drugi: generowanie klas dostępu do bazy danych (110)
- Krok trzeci: tworzenie pustej bazy danych (110)
- Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego (110)
- Krok piąty: zrzut wypełnionej bazy danych (113)
- Krok szósty: aplikacja prezentujÄ…ca zawartość bazy danych (114)
- Projekt 7.2. Tatry (szablony PHP, Doctrine) (116)
- Krok pierwszy: projekt bazy danych (116)
- Krok drugi: generowanie klas dostępu do bazy danych (116)
- Krok trzeci: tworzenie pustej bazy danych (117)
- Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego (117)
- Krok piąty: zrzut wypełnionej bazy danych (118)
- Krok szósty: aplikacja prezentujÄ…ca zawartość bazy danych (118)
- Projekt 7.3. Tatry (szablony Smarty, Propel) (119)
- Projekt 7.4. Tatry (szablony Smarty, Doctrine) (120)
Rozdział 8. Czego powinieneś nauczyć się z części pierwszej? (123)
Część II: Operowanie klasami wygenerowanymi przez Propel oraz Doctrine (129)
RozdziaÅ‚ 9. Wybieranie wszystkich rekordów z tabeli w zadanym porzÄ…dku (131)
- Propel - sortowanie rekordów (132)
- Doctrine - sortowanie rekordów (134)
- Projekt 9.1. SÅ‚ownik (Propel, PHP) (134)
- Krok pierwszy: projekt bazy danych (135)
- Krok drugi: generowanie klas dostępu do bazy danych (135)
- Krok trzeci: tworzenie pustej bazy danych (137)
- Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego (137)
- Krok piąty: zrzut wypełnionej bazy danych (138)
- Krok szósty: aplikacja prezentujÄ…ca zawartość bazy danych (138)
- Projekt 9.2. SÅ‚ownik (Doctrine, PHP) (141)
- Krok pierwszy: projekt bazy danych (141)
- Krok drugi: generowanie klas dostępu do bazy danych (141)
- Krok trzeci: tworzenie pustej bazy danych (142)
- Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego (142)
- Krok piąty: zrzut wypełnionej bazy danych (142)
- Krok szósty: aplikacja prezentujÄ…ca zawartość bazy danych (143)
Rozdział 10. Wybieranie pojedynczego rekordu (145)
- Propel (145)
- Doctrine (147)
- Projekt 10.1. Treny (Propel, PHP) (147)
- Identyfikacja trenu wewnÄ…trz akcji tren/show (151)
- Projekt 10.2. Treny (Doctrine, PHP) (153)
Rozdział 11. Relacje 1:n (157)
- Metody generowane przez Propel dla relacji 1:n (158)
- Doctrine i relacje 1:n (160)
- Projekt 11.1. Kontynenty, państwa, miasta (Propel, PHP) (162)
- Przygotowanie bazy danych (163)
- Aplikacja (167)
- Projekt 11.2. Kontynenty, państwa, miasta (Doctrine, PHP) (173)
- Rozszerzanie właściwości klas generowanych przez Doctrine (174)
- Wstawianie rekordów (176)
- Aplikacja (178)
Rozdział 12. Relacje n:m (181)
- Metody generowane przez Propel dla relacji n:m (182)
- Doctrine i relacje n:m (183)
- Projekt 12.1. Filmy (Propel, PHP) (184)
- Przygotowanie bazy danych (184)
- Aplikacja (187)
- Projekt 12.2. Filmy (Doctrine, PHP) (189)
- Propel. Sortowanie rekordów stojÄ…cych w relacji n:m (192)
- Projekt 12.3. Filmy (Propel, PHP, sortowanie) (192)
- Doctrine. Sortowanie rekordów stojÄ…cych w relacji n:m (193)
- Projekt 12.4. Filmy (Doctrine, PHP, sortowanie) (194)
Rozdział 13. Zagadnienia dodatkowe dotyczące warstw M oraz V (197)
- Czyszczenie zawartości bazy danych (197)
- Konwersja obiektu w napis (198)
- Konwersje toArray(), fromArray() (198)
- Warunkowe wstawianie nieistniejÄ…cych obiektów (200)
- Wielokrotne wykorzystanie widoku (201)
- Projekt 13.1. Aparaty foto (Propel, PHP) (202)
- Warstwa M (202)
- Wypełnianie bazy danych (205)
- Aplikacja (206)
- Projekt 13.2. Aparaty foto (Doctrine, PHP) (208)
- Rozszerzanie funkcjonalności klas wygenerowanych przez Doctrine (209)
- Wstawianie rekordów do bazy danych (211)
- Aplikacja (212)
RozdziaÅ‚ 14. Zapisywanie w bazie danych obrazów i plików binarnych (215)
- Zapisywanie w bazie danych zdjęć JPG (215)
- Prezentowanie zdjęć JPG zapisanych w bazie danych na stronie WWW (216)
- Zapisywanie w bazie danych dowolnych plików binarnych (218)
- Wysyłanie danych binarnych z bazy do przeglądarki (220)
- Projekt 14.1. NotH (Propel, PHP) (221)
- Skrypt wstaw.php (223)
- Aplikacja (224)
- Tytuły stron (225)
- Rozwijane menu pionowe (226)
- WartoÅ›ci atrybutów href oraz src w tekstach zapisanych w bazie danych (227)
- Projekt 14.2. NotH (Doctrine, PHP) (229)
- Skrypt wstaw.php (230)
- Aplikacja (230)
Rozdział 15. Akcje list i show, czyli publikowanie zawartości bazy danych w postaci witryny WWW (233)
- Projekt 15.1. Czcionki projektów CSS Zen Garden (Propel, PHP) (234)
- Aplikacja (235)
- Menu gÅ‚ówne witryny oraz tytuÅ‚y podstron (240)
Rozdział 16. Czego powinieneś nauczyć się z części drugiej? (243)
Część III: Zwiększanie funkcjonalności interfejsu aplikacji internetowej (245)
RozdziaÅ‚ 17. Kontekstowe hiperÅ‚Ä…cza do stron ze szczegóÅ‚owymi informacjami (247)
- Projekt 17.1. Angaże (szablony PHP, Propel) (248)
- Unikatowość kolumny slug (248)
- Pliki tekstowe o bardziej złożonej strukturze (250)
- Rozszerzenia warstwy M (251)
- Filtry konwertujÄ…ce generowany kod HTML (260)
- Aplikacja (261)
- Hiperłącza kontekstowe (263)
- Menu kontekstowe (264)
Rozdział 18. Następny, poprzedni, czyli przewijanie zawartości witryny WWW (267)
- Projekt 18.1. PHP. Praktyczne projekty (269)
- Ograniczenia kluczy obcych (270)
- Wstępne opracowanie aplikacji (271)
- Implementacja hiperłączy następny/poprzedni (276)
- HiperÅ‚Ä…cza link zawarte w nagÅ‚ówku strony WWW (285)
Rozdział 19. Wskaźnik położenia (287)
- Projekt 19.1. Kolekcja płyt DVD z fotografiami (288)
- Rozszerzanie klas dostępu do bazy danych (291)
- Wypełnianie bazy danych rekordami (295)
- Aplikacja (302)
- Translacje adresów stosujÄ…cych cztery zmienne URL (304)
- Tabela zdjęć wykonana bez użycia tabel HTML (305)
- Wskaźniki następny/poprzedni do przewijania zdjęć i kategorii (306)
- Efekt rollover ze wskaźnikiem wybranej opcji (307)
- Fotografie podążające za wskaźnikiem myszki (307)
- Wskaźnik breadcrumbs (310)
Rozdział 20. Sortowanie tabel (311)
- Projekt 20.1. Piłka nożna - sezon 2002/2003 (312)
- Wielokrotne klucze obce z tej samej tabeli (314)
- Sortowanie złączeń dla wielokrotnych kluczy (314)
- Wypełnianie bazy danych (317)
- Zarys aplikacji (320)
- Implementacja sortowalnych tabelek HTML (320)
Rozdział 21. Stronicowanie (331)
- Projekt 21.1. 33 ? (332)
- Automatyczne generowanie identyfikatorów slug dla rekordów o zdublowanych tytuÅ‚ach (333)
- Klasa Pager (335)
- Widok wskaźnika stronicowania (343)
- Prezentacja rekordów poddanych stronicowaniu (345)
- Kontekstowe stronicowanie rekordów (348)
Rozdział 22. Alfabet (351)
- Projekt 22.1. Imiona (351)
- Wybieranie alfabetu liter (352)
- Komponent wyświetlający alfabet (353)
- Prezentacja liter rozpoczynajÄ…cych siÄ™ od wybranej litery na stronie WWW (354)
- Umieszczanie kontrolki z listÄ… liter w szablonie layout.html (355)
RozdziaÅ‚ 23. Chmura tagów (357)
- Projekt 23.1. Katalog Open Clipart (358)
- Wypełnianie bazy danych (360)
- Waga sÅ‚ów kluczowych (363)
- Aplikacja (365)
Rozdział 24. Spis treści (371)
- Projekt 24.1. Artykuły (372)
- Wypełnianie bazy danych rekordami (373)
- Funkcje odpowiedzialne za odczytywanie i usuwanie fragmentów kodu HTML (376)
- Funkcje odpowiedzialne za tworzenie spisu treści (378)
- Kolorowanie składni (380)
- Aplikacja (381)
Rozdział 25. Czego powinieneś nauczyć się z części trzeciej? (383)
Część IV: Formaty danych (385)
RozdziaÅ‚ 26. Podstawy przetwarzania dokumentów XML w PHP (387)
- Klasa SimpleXML (387)
- Tworzenie obiektu SimpleXMLElement (388)
- DostÄ™p do wÄ™zÅ‚ów drzewa (389)
- Lista identycznych elementów (390)
- DostÄ™p do atrybutów (391)
- Przetwarzanie wszystkich elementów i ich atrybutów (391)
- Wielokrotne zagnieżdżenia (392)
- Język XPath (395)
- Przykładowe dokumenty XML dostępne w internecie (395)
- Kursy walut (395)
- Książki wydawnictwa Helion (397)
- Projekt 26.1. Turniej Czterech Skoczni (398)
- Aplikacja (400)
RozdziaÅ‚ 27. Generowanie dokumentów XML w PHP (403)
- Statyczne pliki XML (403)
- Generowanie dokumentu XML w PHP (405)
- Echo - drukowanie kodu XML (406)
- Generowanie XML na podstawie tablicy (407)
- Generowanie XML na podstawie pliku tekstowego (408)
- Zapisywanie kodu XML do pliku (409)
- Konwersja pliku tekstowego do formatu XML (409)
- Dane w formacie XML opisujÄ…ce witrynÄ™ WWW (410)
- Mapa witryny: sitemap.xml (410)
- Kanał RSS (411)
- Projekt 27.1. Kursy walut (412)
- Ustalanie adresów dokumentów XML z kursami walut (412)
- Projekt bazy danych (413)
- Wypełnianie bazy danych rekordami (413)
- Aplikacja (415)
- Kanał RSS (415)
- Mapa witryny (416)
- Wykresy kursów walut (418)
Rozdział 28. XML_Serializer, XML_Unserializer - dwukierunkowe transformacje tablic w XML (423)
- XML_Serializer (423)
- Konwersja tablicy w kod XML (423)
- Tablica asocjacyjna (424)
- Opcje (425)
- Tablica opcji (426)
- Jednowymiarowa tablica indeksowana (426)
- Wielowymiarowe tablice indeksowane (427)
- Atrybuty (428)
- Wybiórcze stosowanie atrybutów (429)
- Przekształcenia (430)
- XML_Serializer - przykłady (431)
- Projekt 28.1. Konwersja pliku nobel.txt (431)
- Projekt 28.2. Konwersja pliku mecze.txt (432)
- Projekt 28.3. Konwersja pliku tcs.txt (434)
- Klasa XML_Unserializer (436)
- Podstawowe użycie (436)
- Odczyt pliku (437)
- Parsing atrybutów (437)
- Konwersja formatu XML (439)
- Projekt 28.4. Konwersja jeden-w-wiele (439)
- Projekt 28.5. Konwersja wiele-w-jeden (440)
- Projekt 28.6. Klasyfikacja zwierzÄ…t (441)
- Wypełnianie bazy danych rekordami (442)
- Moduły i akcje aplikacji (443)
- Akcja main/drzewo (444)
- Kanał RSS (444)
- Generowanie statycznego dokumentu sitemap.xml (447)
Rozdział 29. Arkusze kalkulacyjne MS Excel XLS (449)
- Odczyt pliku XLS (449)
- Odczyt kilku arkuszy (451)
- Tworzenie pliku XLS (452)
- Wysyłanie arkusza do przeglądarki (453)
- Konwersja pliku tekstowego do formatu XLS (453)
- Konwersja pliku XLS do formatu tekstowego (454)
- Projekt 29.1. Generowanie danych autokomisu (455)
- Projekt 29.2. Autokomis (460)
- Wypełnianie bazy danych rekordami (460)
- Aplikacja (465)
RozdziaÅ‚ 30. Konwersja plików z danymi (467)
- Format danych tekstowych (467)
- Format danych XML (469)
- Format danych XLS (470)
- Projekt 30.1. Konwersja formatu TXT do formatu XML (470)
- Projekt 30.2. Konwersja formatu TXT do formatu XLS (474)
- Projekt 30.3. Konwersja formatu XML do formatu TXT (476)
- Projekt 30.4. Konwersja formatu XML do formatu XLS (477)
- Projekt 30.5. Konwersja formatu XLS do formatu TXT (478)
- Projekt 30.6. Konwersja formatu XLS do formatu XML (480)
- Projekt 30.7. Zestawienia artykuÅ‚ów "Magazynu INTERNET" (480)
- Aplikacja (483)
- Akcja list prezentujÄ…ca sortowalnÄ… i stronicowanÄ… tabelkÄ™ HTML (484)
- Akcja show prezentujÄ…ca sortowalnÄ… i stronicowanÄ… tabelkÄ™ HTML (486)
Rozdział 31. Skompresowane dokumenty XML zawierające dane binarne (489)
- Kodowanie base64 (490)
- Dekodowanie base64 (490)
- Kompresja danych (491)
- Dekompresja danych (492)
- Projekt 31.1. Format danych systemu do publikowania artykuÅ‚ów (493)
- Umieszczanie ilustracji, listingów, ramek i tabel w treÅ›ci artykuÅ‚u (495)
- Projekt 31.2. Konwersja artykułu z formatu tekstowego do spakowanego pliku XML (495)
- Projekt 31.3. System publikacji artykuÅ‚ów w postaci witryny WWW (498)
- Baza danych (499)
- Propel i dostęp tylko do wybranych kolumn tabeli (499)
- Wypełnianie bazy danych (501)
- Aplikacja (508)
Rozdział 32. Czego powinieneś nauczyć się z części czwartej? (511)
Skorowidz (513)