Symfony 2 od podstaw - Helion
ISBN: 978-83-246-6241-8
stron: 488, Format: ebook
Data wydania: 2012-10-29
Księgarnia: Helion
Cena książki: 43,45 zł (poprzednio: 77,59 zł)
Oszczędzasz: 44% (-34,14 zł)
Podbij internet z Symfony 2!
- Bez trudu zbuduj stronę WWW w środowisku Symfony 2
- Precyzyjnie określ swoje potrzeby i zrealizuj je z pomocą tego środowiska
- Skutecznie chroń dostęp do aplikacji
Symfony 2 to nowa wersja doskonałego środowiska, pozwalającego tworzyć strony internetowe oraz aplikacje w języku PHP. Ten framework, długo wypatrywany przez rzesze programistów, ma wiele atutów: w pełni wykorzystuje obiektowe możliwości najnowszej wersji języka PHP, jest kompatybilny z innymi bibliotekami PHP, ma modularną budowę, a także zawiera ponad dwadzieścia komponentów, których można używać razem lub oddzielnie. Znakomicie ułatwia też wychwytywanie błędów w tworzonej aplikacji i efektywnie zabezpiecza ją przed dostępem niepowołanych osób.
Zadaniem tej książki jest szybkie i praktyczne wprowadzenie Cię w świat Symfony 2 oraz pokazanie na konkretnych przykładach, jak można wykorzystać jego wspaniałe możliwości. Sprawdź, jak zainstalować aplikację i stworzyć z niej wygodne narzędzie, dołączyć zewnętrzne zasoby, przygotować szablon witryny czy opublikować projekt. Poznaj zmienne, wyrażenia i operatory Twig, instrukcje sterujące, znaczniki, funkcje i filtry. Naucz się pracować z bazą danych, wykorzystywać różne rozszerzenia i relacje, tworzyć aplikacje interaktywne i te przeznaczone wyłącznie do odczytu. Wszystko to masz na wyciągnięcie ręki - przeczytaj i stosuj we własnych projektach!
- Tworzenie prostych stron WWW
- Dostosowywanie Symfony 2
- Praca z bazą danych
- Doctrine Behaviours
- Szczegółowe dane rekordu
- Relacje
- Panele CRUD i zabezpieczanie dostępu do aplikacji
Poczuj komfort pracy z rewolucyjnym frameworkiem Symfony 2!
Osoby które kupowały "Symfony 2 od podstaw", wybierały także:
- PHP 8 Programming Tips, Tricks and Best Practices 157,37 zł, (29,90 zł -81%)
- Domain-Driven Design in PHP 135,91 zł, (29,90 zł -78%)
- PHP Microservices 135,91 zł, (29,90 zł -78%)
- Drupal 8 Module Development. Second edition 124,58 zł, (29,90 zł -76%)
- Mastering The Faster Web with PHP, MySQL, and JavaScript 124,58 zł, (29,90 zł -76%)
Spis treści
Symfony 2 od podstaw eBook -- spis treści
Podziękowania (13)
CZĘŚĆ I TWORZENIE PROSTYCH STRON WWW (15)
Rozdział 1. Uruchomienie przykładowego projektu (17)
- Dystrybucja with vendors - około 6 MB (17)
- Dystrybucja without vendors - około 200 kB (17)
- Przykład 1.1. Aplikacja przykładowa (18)
- ROZWIĄZANIE (18)
- Podsumowanie (22)
Rozdział 2. Hello, world! (25)
- Przestrzenie nazw (25)
- Pakiet (26)
- Kontroler i akcja (27)
- Widok (28)
- Przykład 2.1. Hello, world! (28)
- ROZWIĄZANIE (28)
- Zmodyfikowane pliki (39)
- Środowiska pracy (40)
- Tworzenie i usuwanie pakietów (42)
- Użycie przestrzeni nazewniczych (42)
- Cechy Symfony 2 (44)
- Formaty konfiguracji (44)
- Uruchomienie gotowego przykładu (46)
Rozdział 3. Dołączanie zewnętrznych zasobów (47)
- Przykład 3.1. Pusta Dolinka (49)
- ROZWIĄZANIE (49)
- Przykład 3.2. Dolina Pięciu Stawów Polskich (53)
- ROZWIĄZANIE (53)
Rozdział 4. Szablon witryny (57)
- Przykład 4.1. Dwa kabele (60)
- ROZWIĄZANIE (61)
Rozdział 5. Hiperłącza i struktura aplikacji (65)
- Tworzenie i usuwanie akcji (65)
- Tworzenie i usuwanie kontrolerów (67)
- Tworzenie i usuwanie pakietów (67)
- Definiowanie adresów URL akcji (68)
- Przykład 5.1. Fraszki (69)
- ROZWIĄZANIE (69)
- Przykład 5.2. Zabytki Lublina (72)
- ROZWIĄZANIE (74)
- Przykład 5.3. Piosenki dla dzieci (77)
- ROZWIĄZANIE (78)
Rozdział 6. Błędy 404 (83)
- Strony błędów w Symfony 2 (84)
- Przykład 6.1. Gady (86)
- ROZWIĄZANIE (86)
- Nadpisywanie widoków dowolnych pakietów (91)
- Programowe generowanie błędów 404 oraz 500 (92)
Rozdział 7. Publikowanie projektu na serwerze hostingowym (93)
- Przykład 7.1. Gady - wersja lokalna z własną domeną (93)
- ROZWIĄZANIE (94)
- Przykład 7.2. Gady - wersja z serwera firmy NetArt (95)
- ROZWIĄZANIE (95)
- Przykład 7.3. Gady - wersja z serwera firmy Light Hosting (97)
- ROZWIĄZANIE (97)
Rozdział 8. Podsumowanie części I (101)
- Dystrybucje Symfony 2 (101)
- Przykładowa aplikacja ACME demo (101)
- Pierwszy samodzielnie wykonany projekt (102)
- Zewnętrzne zasoby (103)
- Szablon witryny (103)
- Podstawy routingu (104)
- Błędy 404 (104)
- Publikowanie projektu (105)
- Przykład 8.1. Przygotowanie pakietu symfony2-customized-v1.zip (bez przykładu src/Acme) (106)
- ROZWIĄZANIE (106)
CZĘŚĆ II WIDOKI (109)
Rozdział 9. Twig (111)
- Logiczne nazwy widoków (111)
- Nadpisywanie widoków z folderu vendor (113)
- Nazwy widoków akcji (114)
- Przykład 9.1. Nazwy logiczne widoków, adnotacja @Template() i metoda render() (116)
- ROZWIĄZANIE (116)
- Składnia widoków Twig (119)
- Wyłączanie interpretacji w szablonie (120)
- Przykład 9.2. Wyłączanie interpretacji fragmentu szablonu (121)
- ROZWIĄZANIE (122)
- Podwójne rozszerzenie .html.twig (123)
- Modyfikacja nagłówka Content-Type przy użyciu parametru _format (124)
- Modyfikacja nagłówka Content-Type metodą set() (124)
- Przykład 9.3. Modyfikacja nagłówka Content-Type (125)
- ROZWIĄZANIE (125)
Rozdział 10. Zmienne, wyrażenia i operatory Twig (129)
- Przekazywanie zmiennych do widoku (129)
- Przykład 10.1. Data i godzina (130)
- ROZWIĄZANIE (131)
- Zabezpieczanie zmiennych (132)
- Przykład 10.2. Zabezpieczanie zmiennych (134)
- ROZWIĄZANIE (135)
- Przekazywanie do widoku tablic (138)
- Przekazywanie do widoku obiektów (139)
- Wyrażenia Twig (139)
- Operatory Twig (141)
- Definiowanie zmiennych wewnątrz widoku (144)
- Zmienne globalne (145)
Rozdział 11. Instrukcje sterujące for oraz if (147)
- Instrukcja for (147)
- Instrukcja if (150)
- Przykład 11.1. Korona ziemi (151)
- ROZWIĄZANIE (152)
- Przykład 11.2. Dzieła literatury światowej (155)
- ROZWIĄZANIE (155)
- Przykład 11.3. Tabliczka mnożenia (157)
- ROZWIĄZANIE (157)
- Przykład 11.4. Tabela potęg (161)
- ROZWIĄZANIE (161)
- Przykład 11.5. Bezpieczna paleta kolorów (163)
- ROZWIĄZANIE (164)
Rozdział 12. Znaczniki, filtry i funkcje (169)
- Znaczniki Twig (169)
- Znaczniki for oraz if (171)
- Znaczniki macro, from i import (171)
- Znacznik filter (172)
- Znacznik set (173)
- Znacznik extends (173)
- Znacznik block (175)
- Znaczniki extends i block oraz dziedziczenie (175)
- Znacznik use (178)
- Znacznik include (179)
- Znacznik spaceless (179)
- Znacznik autoescape (180)
- Znacznik raw (180)
- Znacznik flush (180)
- Znacznik do (180)
- Znacznik render (181)
- Filtry (181)
- Funkcje (184)
- Przykład 12.1. Piosenki dziecięce (185)
- ROZWIĄZANIE (186)
Rozdział 13. Trójstopniowy podział widoków (195)
- Przykład 13.1. Opowiadania Edgara Allana Poe (197)
- ROZWIĄZANIE (198)
Rozdział 14. Podsumowanie części II (205)
CZĘŚĆ III DOSTOSOWYWANIE SYMFONY 2 (207)
Rozdział 15. Dodawanie nowych pakietów (209)
- Lista pakietów zawartych w Symfony (209)
- Zawartość folderu vendor/ (210)
- Pobieranie pakietów do folderu vendor/ (211)
- Dołączanie pakietów do kodu (212)
- Przykład 15.1. Przygotowanie dystrybucji symfony2-customized-v2 zawierającej pakiet DoctrineFixturesBundle (212)
- ROZWIĄZANIE (213)
Rozdział 16. Podsumowanie części III (217)
CZĘŚĆ IV PRACA Z BAZĄ DANYCH (219)
Rozdział 17. Pierwszy projekt wykorzystujący bazę danych (221)
- Przykład 17.1. Imiona (221)
- ROZWIĄZANIE (222)
Rozdział 18. ORM Doctrine 2 (233)
- Tworzenie i usuwanie bazy danych (233)
- Doctrine 2.1 (234)
- Tworzenie tabel w bazie danych (235)
- Struktura klas dostępu do bazy danych (236)
- Dodawanie nowych właściwości do istniejącej klasy (237)
- Typy danych (238)
- Operowanie klasami dostępu do bazy danych (240)
- Klasy Entity i EntityManager (240)
- Stan obiektu Entity (241)
- Tworzenie nowych rekordów (242)
- Usuwanie rekordów (243)
- Pobieranie wszystkich rekordów z bazy (243)
- Przykład 18.1. Rzeki (243)
- ROZWIĄZANIE (244)
Rozdział 19. Dostosowywanie klas dostępu do bazy danych (251)
- Klasy Entity oraz Repository (251)
- Podstawowe metody klas Repository (252)
- Metoda find() (252)
- Metoda findAll() (253)
- Metoda findBy() (253)
- Metoda findOneBy() (254)
- Metoda findByX() (254)
- Metoda findOneByX() (255)
- Nadpisywanie metod klasy Entity (255)
- Metoda __toString() klasy Entity (255)
- Metoda fromArray () klasy Entity (256)
- Nadpisywanie metod klasy Repository (256)
- Przykład 19.1. Tatry (257)
- ROZWIĄZANIE (257)
Rozdział 20. Podsumowanie części IV (265)
CZĘŚĆ V ZACHOWANIA DOCTRINE (267)
Rozdział 21. Instalacja i konfiguracja rozszerzeń DoctrineExtensions (269)
- Przykład 21.1. Przygotowanie dystrybucji symfony2-customized-v3 zawierającej pakiet StofDoctrineExtensionsBundle (270)
- ROZWIĄZANIE (270)
Rozdział 22. Zachowanie sluggable (275)
- Identyfikatory slug (275)
- Automatyczne generowanie identyfikatorów slug w Symfony 2 (276)
- Przykład 22.1. Wyrazy - test zachowania sluggable (277)
- ROZWIĄZANIE (277)
- Parametry adnotacji konfigurujących wartości slug (280)
Rozdział 23. Zachowanie timestampable (281)
- Przykład 23.1. Wyrazy - test zachowania timestampable (282)
- ROZWIĄZANIE (282)
Rozdział 24. Zachowanie translatable (283)
- Wstawianie tłumaczeń do bazy danych (284)
- Odczytywanie tłumaczeń (286)
- Przykład 24.1. Kolory - test zachowania timestampable (286)
- ROZWIĄZANIE (287)
Rozdział 25. Podsumowanie części V (293)
CZĘŚĆ VI SZCZEGÓŁOWE DANE REKORDU (295)
Rozdział 26. Akcja show (297)
- Adresy URL zawierające zmienne (297)
- Konwersja wejściowa (298)
- Konwersja wyjściowa (298)
- Wyszukiwanie pojedynczego rekordu na podstawie klucza głównego (298)
- Wyświetlanie właściwości rekordu (299)
- Przykład 26.1. Piosenki wojskowe (299)
- ROZWIĄZANIE (300)
Rozdział 27. Identyfikacja rekordu na podstawie wartości slug (307)
- Przykład 27.1. Piosenki wojskowe - użycie identyfikatorów slug (308)
- ROZWIĄZANIE (308)
Rozdział 28. Generowanie menu na podstawie zawartości bazy danych (311)
- Przykład 28.1. Treny (311)
- ROZWIĄZANIE (312)
Rozdział 29. Udostępnianie plików binarnych (319)
- Przykład 29.1. Download - pliki zapisane w bazie danych (320)
- ROZWIĄZANIE (320)
- Przykład 29.2. Download - pliki pobierane z folderu (325)
- ROZWIĄZANIE (325)
Rozdział 30. Podsumowanie części VI (327)
CZĘŚĆ VII RELACJE (329)
Rozdział 31. Relacje 1:1 (331)
- Klucze obce o wartości NULL (332)
- Użycie relacji 1:1 w Symfony 2 (332)
- Operowanie rekordami powiązanymi relacją (334)
- Tworzenie rekordów (334)
- Rekord zależny (335)
- Przykład 31.1. Dane użytkowników (335)
- ROZWIĄZANIE (335)
- Akcje referencyjne SQL (338)
- Programowe akcje referencyjne Doctrine 2.1 (339)
- Parametr cascade (339)
- Parametr orphanRemoval (340)
- Relacje jednokierunkowe i dwukierunkowe (340)
- Synchronizacja obiektów z bazą danych (342)
Rozdział 32. Relacje 1:n (jeden do wielu) (345)
- Klucze obce o wartości NULL (346)
- Użycie relacji 1:n w Symfony 2 (346)
- Właściciel relacji 1:n (349)
- Operowanie rekordami powiązanymi relacją (349)
- Tworzenie rekordów (349)
- Rekordy zależne (350)
- Rekord nadrzędny (351)
- Synchronizacja relacji (351)
- Akcje referencyjne (352)
- Akcje SQL-owe (352)
- Akcje Doctrine (352)
- Przykład 32.1. Kontynent i państwa (353)
- ROZWIĄZANIE (353)
- Porządkowanie rekordów (357)
Rozdział 33. Relacje n:m (wiele do wielu) (359)
- Użycie relacji n:m w Symfony 2 (360)
- Właściciel relacji n:m (361)
- Tabela łącząca relacji n:m (362)
- Operowanie rekordami powiązanymi relacją (362)
- Tworzenie rekordów (362)
- Rekordy zależne (363)
- Synchronizacja relacji (364)
- Usuwanie powiązania relacyjnego (364)
- Akcje referencyjne SQL (365)
- Akcje SQL-owe (365)
- Przykład 33.1. Filmy i aktorzy (365)
- ROZWIĄZANIE (365)
- Porządkowanie rekordów (370)
Rozdział 34. Relacje, akcje index i show oraz widoki częściowe (373)
- Przykład 34.1. Kontynenty/Państwa - akcje show i widoki częściowe (375)
- Przykład 34.2. Filmy/Aktorzy - akcje show i widoki częściowe (376)
- Przykład 34.3. Powieści Agaty Christie (376)
- ROZWIĄZANIE (377)
Rozdział 35. Podsumowanie części VII (385)
CZĘŚĆ VIII PANELE CRUD I ZABEZPIECZANIE DOSTĘPU DO APLIKACJI (387)
Rozdział 36. Generowanie paneli administracyjnych CRUD (389)
- Adresy URL akcji CRUD (391)
- Ponowne generowanie paneli CRUD (394)
- Panele CRUD a relacje (394)
- Przykład 36.1. Imiona - panel CRUD (394)
- ROZWIĄZANIE (395)
- Przykład 36.2. Panel CRUD i relacja 1:1 (396)
- ROZWIĄZANIE (396)
- Przykład 36.3. Panel CRUD i relacja 1:n (399)
- ROZWIĄZANIE (399)
- Przykład 36.4. Panel CRUD i relacja n:m (401)
- ROZWIĄZANIE (401)
Rozdział 37. Instalacja pakietu FOSUserBundle (403)
- Przykład 37.1. Przygotowanie dystrybucji symfony2-customized-v4 zawierającej pakiet FOSUserBundle (403)
- ROZWIĄZANIE (403)
- Tworzenie kont i nadawanie uprawnień (408)
- Tworzenie kont (409)
- Aktywacja i deaktywacja konta (409)
- Nadawanie i usuwanie uprawnień administracyjnych (409)
- Przykład 37.2. Sprawdzenie działania dystrybucji symfony2-customized-v4 (410)
- ROZWIĄZANIE (410)
Rozdział 38. Aplikacja dostępna wyłącznie dla zdefiniowanych użytkowników (415)
- Uprawnienia dostępu (415)
- Role użytkowników (416)
- Nadawanie, usuwanie i sprawdzanie uprawnień użytkownikom (417)
- Przykład 38.1. Korona ziemi (419)
- ROZWIĄZANIE (420)
- Hierarchia ról (427)
Rozdział 39. Aplikacja dostępna publicznie w trybie do odczytu (429)
- Przykład 39.1. Korona ziemi - podział na frontend oraz backend (429)
- ROZWIĄZANIE (430)
- Przekierowania (432)
- Osadzanie formularza do logowania na stronie głównej (434)
- Przykład 39.2. Korona ziemi - osadzenie formularza do logowania w pliku base.html.twig (435)
- ROZWIĄZANIE (435)
Rozdział 40. Rejestracja użytkowników i odzyskiwanie hasła (439)
- Przykład 40.1. Kontynenty/państwa - frontend i backend (439)
- ROZWIĄZANIE (439)
- Przykład 40.2. Kontynenty/państwa - rejestracja użytkowników (442)
- ROZWIĄZANIE (442)
- Przykład 40.3. Kontynenty/państwa - odzyskiwanie hasła (444)
- ROZWIĄZANIE (444)
Rozdział 41. Podsumowanie części VIII (447)
CZĘŚĆ IX PANELE ADMINISTRACYJNE SONATA (449)
Rozdział 42. Instalacja pakietów Sonata (451)
- Przykład 42.1. Przygotowanie dystrybucji symfony2-customized-v5 zawierającej pakiet SonataAdminBundle (451)
- ROZWIĄZANIE (452)
- Krok 1. Wypakuj dystrybucję Symfony 2.0.X without vendors (452)
- Krok 2. Zmodyfikuj plik deps (452)
- Krok 3. Pobierz pakiety (453)
- Krok 4. Usuń foldery .git (453)
- Krok 5. Zarejestruj przestrzenie nazw (453)
- Krok 6. Zarejestruj pakiety (454)
- Krok 7. Zmodyfikuj konfigurację projektu (454)
- Krok 8. Zmodyfikuj zabezpieczenia projektu (455)
- Krok 9. Utwórz pakiet Application/Sonata/UserBundle (457)
- Krok 10. Zmodyfikuj reguły routingu (457)
- Krok 11. Zainstaluj style CSS oraz ikony (458)
- Krok 12. Skompresuj otrzymaną dystrybucję (458)
- Przykład 42.2. Sprawdź działanie dystrybucji symfony2-customized-v5 (458)
- ROZWIĄZANIE (459)
- Krok 1. Wypakuj dystrybucję i skonfiguruj bazę danych (459)
- Krok 2. Utwórz tabele w bazie danych (459)
- Krok 3. Utwórz konto administratora (459)
- Krok 4. Sprawdź wygląd panelu administracyjnego (459)
Rozdział 43. Użycie paneli administracyjnych Sonata do własnych tabel (461)
- Przykład 43.1. Miasta (461)
- ROZWIĄZANIE (462)
- Krok 1. Wypakuj dystrybucję i skonfiguruj bazę danych (462)
- Krok 2. Utwórz pakiet My/Frontend (462)
- Krok 3. Utwórz klasę CityAdmin (462)
- Krok 4. Włącz panel administracyjny do zarządzania rekordami City (463)
- Krok 5. Przygotuj plik zawierający tłumaczenia (464)
- Krok 6. Sprawdź wygląd panelu administracyjnego do edycji miast (464)
Rozdział 44. Podsumowanie części IX (467)
- Przykład 44.1. Przygotowanie dystrybucji symfony2-customized-v6 zawierającej omówione pakiety (467)
- Przykład 44.2. Rzeki: aplikacja z panelem Sonata (468)
- ROZWIĄZANIE (468)
- Krok 1. Połącz przykład 18. z dystrybucją symfony2-customized-v6.zip (468)
- Krok 2. Wykonaj panel Sonata (469)
- Przykład 44.3. Kontynenty: aplikacja z panelem Sonata (469)
- ROZWIĄZANIE (469)
- Przykład 44.4. Filmy: aplikacja z panelem Sonata (470)
- Przykład 44.5. Powieści Agaty Christie: aplikacja z panelem Sonata (470)
DODATKI (471)
Dodatek A Instalacja oprogramowania (473)
- 1. XAMPP (473)
- 2. Modyfikacja konfiguracji PHP (475)
- 3. Modyfikacja pakietu PEAR (476)
- 4. Uaktualnienie biblioteki PEAR (476)
- 5. Code Sniffer (477)
- 6. phpDocumentor (477)
- 7. PHPUnit (477)
- 8. Cygwin (478)
- 9. Ścieżki dostępu (480)
- 10. GraphViz (482)
- 11. NetBeans (482)
Skorowidz (483)