PHP, MySQL i MVC. Tworzenie witryn WWW opartych na bazie danych - ebook
PHP, MySQL i MVC. Tworzenie witryn WWW opartych na bazie danych - ebook
- 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.
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...
Kategoria: | Bazy danych |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-2409-1 |
Rozmiar pliku: | 5,3 MB |