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.
Author(s): Włodzimierz Gajda
Publisher: Helion
Year: 2010
Spis treści
Wstęp
Część I. Akcje, widoki, translacje adresów URL i bazy danych, czyli podstawy użycia MVC
Rozdział 1. Hello world — pierwsza aplikacja korzystająca z MVC
Projekt 1.1. Hello world!
Krok pierwszy: utworzenie modułu main
Krok drugi: utworzenie akcji hello w module main
Krok trzeci: utworzenie układu witryny WWW
Krok czwarty: reguła translacji adresu pierwszy-projekt.html na wykonanie akcji main/hello
Krok piąty: skrypt index.php
Pliki, które należy utworzyć
Uruchomienie projektu
Przebieg wykonania
Rozdział 2. Dołączanie zewnętrznych zasobów .css, .jpg, .js
Projekt 2.1. Wlazł kotek na schody…
Analiza ścieżek zawartych w kodzie HTML
Rozdział 3. Błędy 404
Projekt 3.1. Żółta Turnia
Oglądanie strony błędu oraz nagłówka HTTP
Rozdział 4. Zmienne i widoki
Projekt 4.1. Data i godzina — szablon PHP
Projekt 4.2. Data i godzina — szablon Smarty
Projekt 4.3. Ojciec i syn — szablon PHP
Projekt 4.4. Ojciec i syn — szablony Smarty
Projekt 4.5. Stefan Żeromski: Zmierzch — szablon PHP
Projekt 4.6. Stefan Żeromski: Zmierzch — szablony Smarty
Projekt 4.7. Kolory CSS
Projekt 4.8. Kolory CSS — szablony Smarty
Rozdział 5. Pre- i postprzetwarzanie
Projekt 5.1. Fraszki
Projekt 5.2. Fraszki — szablony Smarty
Rozdział 6. Translacja adresów URL
Projekt 6.1. Kolędy
Analiza różnych rodzajów adresów URL
Dwukierunkowość konwersji adresów
Konwersje adresów w generowanych stronach WWW
Włączanie i wyłączanie translacji wyjściowych
Konwersja adresów URL przy użyciu funkcji pomocniczych
Implementacja funkcji pomocniczych w postaci wtyczek Smarty
Kilka zmiennych w adresach URL
Projekt 6.2. Ligi piłkarskie
Zmienne $path_prefix oraz ###PATH_PREFIX###
Rozdział 7. Bazy danych
Wizualne projektowanie bazy danych
Oprogramowanie ORM
Konwersja pliku .mwb do formatu Propel XML
Konwersja pliku .mwb do formatu Doctrine YML
db-frame-tool
Propel — generowanie klas dostępu do bazy
ORM Propel — pierwsze kroki
Zestawienie wygenerowanych klas oraz najważniejszych metod
Podstawy użycia klas wygenerowanych przez Propel
Doctrine — generowanie klas dostępu do bazy
ORM Doctrine — pierwsze kroki
Zestawienie wygenerowanych klas oraz najważniejszych metod
Podstawy użycia klas wygenerowanych przez Doctrine
Projekt 7.1. Tatry (szablony PHP, Propel)
Krok pierwszy: projekt bazy danych
Krok drugi: generowanie klas dostępu do bazy danych
Krok trzeci: tworzenie pustej bazy danych
Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego
Krok piąty: zrzut wypełnionej bazy danych
Krok szósty: aplikacja prezentująca zawartość bazy danych
Projekt 7.2. Tatry (szablony PHP, Doctrine)
Krok pierwszy: projekt bazy danych
Krok drugi: generowanie klas dostępu do bazy danych
Krok trzeci: tworzenie pustej bazy danych
Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego
Krok piąty: zrzut wypełnionej bazy danych
Krok szósty: aplikacja prezentująca zawartość bazy danych
Projekt 7.3. Tatry (szablony Smarty, Propel)
Projekt 7.4. Tatry (szablony Smarty, Doctrine)
Rozdział 8. Czego powinieneś nauczyć się z części pierwszej?
Część II. Operowanie klasami wygenerowanymi przez Propel oraz Doctrine
Rozdział 9. Wybieranie wszystkich rekordów z tabeli w zadanym porządku
Propel — sortowanie rekordów
Doctrine — sortowanie rekordów
Projekt 9.1. Słownik (Propel, PHP)
Krok pierwszy: projekt bazy danych
Krok drugi: generowanie klas dostępu do bazy danych
Krok trzeci: tworzenie pustej bazy danych
Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego
Krok piąty: zrzut wypełnionej bazy danych
Krok szósty: aplikacja prezentująca zawartość bazy danych
Projekt 9.2. Słownik (Doctrine, PHP)
Krok pierwszy: projekt bazy danych
Krok drugi: generowanie klas dostępu do bazy danych
Krok trzeci: tworzenie pustej bazy danych
Krok czwarty: wypełnianie bazy danych na podstawie pliku tekstowego
Krok piąty: zrzut wypełnionej bazy danych
Krok szósty: aplikacja prezentująca zawartość bazy danych
Rozdział 10. Wybieranie pojedynczego rekordu
Propel
Doctrine
Projekt 10.1. Treny (Propel, PHP)
Identyfikacja trenu wewnątrz akcji tren/show
Projekt 10.2. Treny (Doctrine, PHP)
Rozdział 11. Relacje 1:n
Metody generowane przez Propel dla relacji 1:n
Doctrine i relacje 1:n
Projekt 11.1. Kontynenty, państwa, miasta (Propel, PHP)
Przygotowanie bazy danych
Aplikacja
Projekt 11.2. Kontynenty, państwa, miasta (Doctrine, PHP)
Rozszerzanie właściwości klas generowanych przez Doctrine
Wstawianie rekordów
Aplikacja
Rozdział 12. Relacje n:m
Metody generowane przez Propel dla relacji n:m
Doctrine i relacje n:m
Projekt 12.1. Filmy (Propel, PHP)
Przygotowanie bazy danych
Aplikacja
Projekt 12.2. Filmy (Doctrine, PHP)
Propel. Sortowanie rekordów stojących w relacji n:m
Projekt 12.3. Filmy (Propel, PHP, sortowanie)
Doctrine. Sortowanie rekordów stojących w relacji n:m
Projekt 12.4. Filmy (Doctrine, PHP, sortowanie)
Rozdział 13. Zagadnienia dodatkowe dotyczące warstw M oraz V
Czyszczenie zawartości bazy danych
Konwersja obiektu w napis
Konwersje toArray(), fromArray()
Warunkowe wstawianie nieistniejących obiektów
Wielokrotne wykorzystanie widoku
Projekt 13.1. Aparaty foto (Propel, PHP)
Warstwa M
Wypełnianie bazy danych
Aplikacja
Projekt 13.2. Aparaty foto (Doctrine, PHP)
Rozszerzanie funkcjonalności klas wygenerowanych przez Doctrine
Wstawianie rekordów do bazy danych
Aplikacja
Rozdział 14. Zapisywanie w bazie danych obrazów i plików binarnych
Zapisywanie w bazie danych zdjęć JPG
Prezentowanie zdjęć JPG zapisanych w bazie danych na stronie WWW
Zapisywanie w bazie danych dowolnych plików binarnych
Wysyłanie danych binarnych z bazy do przeglądarki
Projekt 14.1. NotH (Propel, PHP)
Skrypt wstaw.php
Aplikacja
Tytuły stron
Rozwijane menu pionowe
Wartości atrybutów href oraz src w tekstach zapisanych w bazie danych
Projekt 14.2. NotH (Doctrine, PHP)
Skrypt wstaw.php
Aplikacja
Rozdział 15. Akcje list i show, czyli publikowanie zawartości bazy danych w postaci witryny WWW
Projekt 15.1. Czcionki projektów CSS Zen Garden (Propel, PHP)
Aplikacja
Menu główne witryny oraz tytuły podstron
Rozdział 16. Czego powinieneś nauczyć się z części drugiej?
Część III. Zwiększanie funkcjonalności interfejsu aplikacji internetowej
Rozdział 17. Kontekstowe hiperłącza do stron ze szczegółowymi informacjami
Projekt 17.1. Angaże (szablony PHP, Propel)
Unikatowość kolumny slug
Pliki tekstowe o bardziej złożonej strukturze
Rozszerzenia warstwy M
Filtry konwertujące generowany kod HTML
Aplikacja
Hiperłącza kontekstowe
Menu kontekstowe
Rozdział 18. Następny, poprzedni, czyli przewijanie zawartości witryny WWW
Projekt 18.1. PHP. Praktyczne projekty
Ograniczenia kluczy obcych
Wstępne opracowanie aplikacji
Implementacja hiperłączy następny/poprzedni
Hiperłącza link zawarte w nagłówku strony WWW
Rozdział 19. Wskaźnik położenia
Projekt 19.1. Kolekcja płyt DVD z fotografiami
Rozszerzanie klas dostępu do bazy danych
Wypełnianie bazy danych rekordami
Aplikacja
Translacje adresów stosujących cztery zmienne URL
Tabela zdjęć wykonana bez użycia tabel HTML
Wskaźniki następny/poprzedni do przewijania zdjęć i kategorii
Efekt rollover ze wskaźnikiem wybranej opcji
Fotografie podążające za wskaźnikiem myszki
Wskaźnik breadcrumbs
Rozdział 20. Sortowanie tabel
Projekt 20.1. Piłka nożna — sezon 2002/2003
Wielokrotne klucze obce z tej samej tabeli
Sortowanie złączeń dla wielokrotnych kluczy
Wypełnianie bazy danych
Zarys aplikacji
Implementacja sortowalnych tabelek HTML
Rozdział 21. Stronicowanie
Projekt 21.1. 33 1/3
Automatyczne generowanie identyfikatorów slug dla rekordów o zdublowanych tytułach
Klasa Pager
Widok wskaźnika stronicowania
Prezentacja rekordów poddanych stronicowaniu
Kontekstowe stronicowanie rekordów
Rozdział 22. Alfabet
Projekt 22.1. Imiona
Wybieranie alfabetu liter
Komponent wyświetlający alfabet
Prezentacja liter rozpoczynających się od wybranej litery na stronie WWW
Umieszczanie kontrolki z listą liter w szablonie layout.html
Rozdział 23. Chmura tagów
Projekt 23.1. Katalog Open Clipart
Wypełnianie bazy danych
Waga słów kluczowych
Aplikacja
Rozdział 24. Spis treści
Projekt 24.1. Artykuły
Wypełnianie bazy danych rekordami
Funkcje odpowiedzialne za odczytywanie i usuwanie fragmentów kodu HTML
Funkcje odpowiedzialne za tworzenie spisu treści
Kolorowanie składni
Aplikacja
Rozdział 25. Czego powinieneś nauczyć się z części trzeciej?
Część IV. Formaty danych
Rozdział 26. Podstawy przetwarzania dokumentów XML w PHP
Klasa SimpleXML
Tworzenie obiektu SimpleXMLElement
Dostęp do węzłów drzewa
Lista identycznych elementów
Dostęp do atrybutów
Przetwarzanie wszystkich elementów i ich atrybutów
Wielokrotne zagnieżdżenia
Język XPath
Przykładowe dokumenty XML dostępne w internecie
Kursy walut
Książki wydawnictwa Helion
Projekt 26.1. Turniej Czterech Skoczni
Aplikacja
Rozdział 27. Generowanie dokumentów XML w PHP
Statyczne pliki XML
Generowanie dokumentu XML w PHP
Echo — drukowanie kodu XML
Generowanie XML na podstawie tablicy
Generowanie XML na podstawie pliku tekstowego
Zapisywanie kodu XML do pliku
Konwersja pliku tekstowego do formatu XML
Dane w formacie XML opisujące witrynę WWW
Mapa witryny: sitemap.xml
Kanał RSS
Projekt 27.1. Kursy walut
Ustalanie adresów dokumentów XML z kursami walut
Projekt bazy danych
Wypełnianie bazy danych rekordami
Aplikacja
Kanał RSS
Mapa witryny
Wykresy kursów walut
Rozdział 28. XML_Serializer, XML_Unserializer — dwukierunkowe transformacje tablic w XML
XML_Serializer
Konwersja tablicy w kod XML
Tablica asocjacyjna
Opcje
Tablica opcji
Jednowymiarowa tablica indeksowana
Wielowymiarowe tablice indeksowane
Atrybuty
Wybiórcze stosowanie atrybutów
Przekształcenia
XML_Serializer — przykłady
Projekt 28.1. Konwersja pliku nobel.txt
Projekt 28.2. Konwersja pliku mecze.txt
Projekt 28.3. Konwersja pliku tcs.txt
Klasa XML_Unserializer
Podstawowe użycie
Odczyt pliku
Parsing atrybutów
Konwersja formatu XML
Projekt 28.4. Konwersja jeden-w-wiele
Projekt 28.5. Konwersja wiele-w-jeden
Projekt 28.6. Klasyfikacja zwierząt
Wypełnianie bazy danych rekordami
Moduły i akcje aplikacji
Akcja main/drzewo
Kanał RSS
Generowanie statycznego dokumentu sitemap.xml
Rozdział 29. Arkusze kalkulacyjne MS Excel XLS
Odczyt pliku XLS
Odczyt kilku arkuszy
Tworzenie pliku XLS
Wysyłanie arkusza do przeglądarki
Konwersja pliku tekstowego do formatu XLS
Konwersja pliku XLS do formatu tekstowego
Projekt 29.1. Generowanie danych autokomisu
Projekt 29.2. Autokomis
Wypełnianie bazy danych rekordami
Aplikacja
Rozdział 30. Konwersja plików z danymi
Format danych tekstowych
Format danych XML
Format danych XLS
Projekt 30.1. Konwersja formatu TXT do formatu XML
Projekt 30.2. Konwersja formatu TXT do formatu XLS
Projekt 30.3. Konwersja formatu XML do formatu TXT
Projekt 30.4. Konwersja formatu XML do formatu XLS
Projekt 30.5. Konwersja formatu XLS do formatu TXT
Projekt 30.6. Konwersja formatu XLS do formatu XML
Projekt 30.7. Zestawienia artykułów „Magazynu INTERNET”
Aplikacja
Akcja list prezentująca sortowalną i stronicowaną tabelkę HTML
Akcja show prezentująca sortowalną i stronicowaną tabelkę HTML
Rozdział 31. Skompresowane dokumenty XML zawierające dane binarne
Kodowanie base64
Dekodowanie base64
Kompresja danych
Dekompresja danych
Projekt 31.1. Format danych systemu do publikowania artykułów
Umieszczanie ilustracji, listingów, ramek i tabel w treści artykułu
Projekt 31.2. Konwersja artykułu z formatu tekstowego do spakowanego pliku XML
Projekt 31.3. System publikacji artykułów w postaci witryny WWW
Baza danych
Propel i dostęp tylko do wybranych kolumn tabeli
Wypełnianie bazy danych
Aplikacja
Rozdział 32. Czego powinieneś nauczyć się z części czwartej?
Skorowidz
Dodatkowe materiały