Upload
phungmien
View
219
Download
0
Embed Size (px)
Citation preview
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Redaktor prowadzący: Ewelina BurskaProjekt okładki: Jan PaluchMateriały graficzne na okładce zostały wykorzystane za zgodą Shutterstock.
Wydawnictwo HELIONul. Kościuszki 1c, 44-100 GLIWICEtel. 32 231 22 19, 32 230 98 63e-mail: [email protected]: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie?symfo2Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Przykłady omówione w książce są dostępne pod adresem:ftp://ftp.helion.pl/przyklady/symfo2.zip
ISBN: 978-83-246-3498-9
Copyright © Helion 2012
Printed in Poland.
• Kup książkę• Poleć książkę • Oceń książkę
• Księgarnia internetowa• Lubię to! » Nasza społeczność
Spis tre�ciPodzi�kowania .............................................................................. 13
Cz��� I Tworzenie prostych stron WWW .................................... 15
Rozdzia� 1. Uruchomienie przyk�adowego projektu ........................................... 17Dystrybucja with vendors — oko�o 6 MB ....................................................................... 17Dystrybucja without vendors — oko�o 200 kB ............................................................. 17Przyk�ad 1.1. Aplikacja przyk�adowa ............................................................................ 18
ROZWI�ZANIE ..................................................................................................... 18Podsumowanie .............................................................................................................. 22
Rozdzia� 2. Hello, world! .................................................................................. 25Przestrzenie nazw .......................................................................................................... 25Pakiet ............................................................................................................................. 26Kontroler i akcja ............................................................................................................ 27Widok ............................................................................................................................ 28Przyk�ad 2.1. Hello, world! ........................................................................................... 28
ROZWI�ZANIE ..................................................................................................... 28Zmodyfikowane pliki .................................................................................................... 39�rodowiska pracy .......................................................................................................... 40Tworzenie i usuwanie pakietów .................................................................................... 42U�ycie przestrzeni nazewniczych .................................................................................. 42Cechy Symfony 2 .......................................................................................................... 44
Formaty konfiguracji ............................................................................................... 44Uruchomienie gotowego przyk�adu ............................................................................... 46
Rozdzia� 3. Do��czanie zewn�trznych zasobów ................................................. 47Przyk�ad 3.1. Pusta Dolinka .......................................................................................... 49
ROZWI�ZANIE ..................................................................................................... 49Przyk�ad 3.2. Dolina Pi�ciu Stawów Polskich ............................................................... 53
ROZWI�ZANIE ..................................................................................................... 53
Rozdzia� 4. Szablon witryny ............................................................................. 57Przyk�ad 4.1. Dwa kabele .............................................................................................. 60
ROZWI�ZANIE ..................................................................................................... 61
Rozdzia� 5. Hiper��cza i struktura aplikacji ...................................................... 65Tworzenie i usuwanie akcji ........................................................................................... 65Tworzenie i usuwanie kontrolerów ............................................................................... 67
4 Symfony 2 od podstaw
Tworzenie i usuwanie pakietów .................................................................................... 67Definiowanie adresów URL akcji ................................................................................. 68Przyk�ad 5.1. Fraszki ..................................................................................................... 69
ROZWI�ZANIE ..................................................................................................... 69Przyk�ad 5.2. Zabytki Lublina ....................................................................................... 72
ROZWI�ZANIE ..................................................................................................... 74Przyk�ad 5.3. Piosenki dla dzieci ................................................................................... 77
ROZWI�ZANIE ..................................................................................................... 78
Rozdzia� 6. B��dy 404 ..................................................................................... 83Strony b��dów w Symfony 2 ......................................................................................... 84Przyk�ad 6.1. Gady ........................................................................................................ 86
ROZWI�ZANIE ..................................................................................................... 86Nadpisywanie widoków dowolnych pakietów .............................................................. 91Programowe generowanie b��dów 404 oraz 500 ........................................................... 92
Rozdzia� 7. Publikowanie projektu na serwerze hostingowym ........................... 93Przyk�ad 7.1. Gady — wersja lokalna z w�asn� domen� ............................................... 93
ROZWI�ZANIE ..................................................................................................... 94Przyk�ad 7.2. Gady — wersja z serwera firmy NetArt .................................................. 95
ROZWI�ZANIE ..................................................................................................... 95Przyk�ad 7.3. Gady — wersja z serwera firmy Light Hosting ....................................... 97
ROZWI�ZANIE ..................................................................................................... 97
Rozdzia� 8. Podsumowanie cz��ci I ............................................................... 101Dystrybucje Symfony 2 ............................................................................................... 101Przyk�adowa aplikacja ACME demo .......................................................................... 101Pierwszy samodzielnie wykonany projekt ................................................................... 102Zewn�trzne zasoby ...................................................................................................... 103Szablon witryny .......................................................................................................... 103Podstawy routingu ....................................................................................................... 104B��dy 404 .................................................................................................................... 104Publikowanie projektu ................................................................................................. 105Przyk�ad 8.1. Przygotowanie pakietu symfony2-customized-v1.zip
(bez przyk�adu src/Acme) ......................................................................................... 106ROZWI�ZANIE ................................................................................................... 106
Cz��� II Widoki ....................................................................... 109
Rozdzia� 9. Twig ........................................................................................... 111Logiczne nazwy widoków ........................................................................................... 111Nadpisywanie widoków z folderu vendor ................................................................... 113Nazwy widoków akcji ................................................................................................. 114Przyk�ad 9.1. Nazwy logiczne widoków, adnotacja @Template() i metoda render() ....... 116
ROZWI�ZANIE ................................................................................................... 116Sk�adnia widoków Twig .............................................................................................. 119Wy��czanie interpretacji w szablonie .......................................................................... 120Przyk�ad 9.2. Wy��czanie interpretacji fragmentu szablonu ........................................ 121
ROZWI�ZANIE ................................................................................................... 122Podwójne rozszerzenie .html.twig ............................................................................... 123
Modyfikacja nag�ówka Content-Type przy u�yciu parametru _format ................. 124Modyfikacja nag�ówka Content-Type metod� set() .............................................. 124
Przyk�ad 9.3. Modyfikacja nag�ówka Content-Type ................................................... 125ROZWI�ZANIE ................................................................................................... 125
Spis tre�ci 5
Rozdzia� 10. Zmienne, wyra�enia i operatory Twig ........................................... 129Przekazywanie zmiennych do widoku ........................................................................ 129Przyk�ad 10.1. Data i godzina ...................................................................................... 130
ROZWI�ZANIE ................................................................................................... 131Zabezpieczanie zmiennych .......................................................................................... 132Przyk�ad 10.2. Zabezpieczanie zmiennych .................................................................. 134
ROZWI�ZANIE ................................................................................................... 135Przekazywanie do widoku tablic ................................................................................. 138Przekazywanie do widoku obiektów ........................................................................... 139Wyra�enia Twig .......................................................................................................... 139Operatory Twig ........................................................................................................... 141Definiowanie zmiennych wewn�trz widoku ................................................................ 144Zmienne globalne ........................................................................................................ 145
Rozdzia� 11. Instrukcje steruj�ce for oraz if ..................................................... 147Instrukcja for ............................................................................................................... 147Instrukcja if ................................................................................................................. 150Przyk�ad 11.1. Korona ziemi ....................................................................................... 151
ROZWI�ZANIE ................................................................................................... 152Przyk�ad 11.2. Dzie�a literatury �wiatowej .................................................................. 155
ROZWI�ZANIE ................................................................................................... 155Przyk�ad 11.3. Tabliczka mno�enia ............................................................................. 157
ROZWI�ZANIE ................................................................................................... 157Przyk�ad 11.4. Tabela pot�g ........................................................................................ 161
ROZWI�ZANIE ................................................................................................... 161Przyk�ad 11.5. Bezpieczna paleta kolorów .................................................................. 163
ROZWI�ZANIE ................................................................................................... 164
Rozdzia� 12. Znaczniki, filtry i funkcje ............................................................. 169Znaczniki Twig ........................................................................................................... 169
Znaczniki for oraz if .............................................................................................. 171Znaczniki macro, from i import ............................................................................ 171Znacznik filter ....................................................................................................... 172Znacznik set .......................................................................................................... 173Znacznik extends ................................................................................................... 173Znacznik block ...................................................................................................... 175Znaczniki extends i block oraz dziedziczenie ....................................................... 175Znacznik use ......................................................................................................... 178Znacznik include ................................................................................................... 179Znacznik spaceless ................................................................................................ 179Znacznik autoescape ............................................................................................. 180Znacznik raw ......................................................................................................... 180Znacznik flush ....................................................................................................... 180Znacznik do ........................................................................................................... 180Znacznik render ..................................................................................................... 181
Filtry ............................................................................................................................ 181Funkcje ........................................................................................................................ 184Przyk�ad 12.1. Piosenki dzieci�ce ............................................................................... 185
ROZWI�ZANIE ................................................................................................... 186
Rozdzia� 13. Trójstopniowy podzia� widoków .................................................... 195Przyk�ad 13.1. Opowiadania Edgara Allana Poe ......................................................... 197
ROZWI�ZANIE ................................................................................................... 198
Rozdzia� 14. Podsumowanie cz��ci II .............................................................. 205
6 Symfony 2 od podstaw
Cz��� III Dostosowywanie Symfony 2 ........................................ 207
Rozdzia� 15. Dodawanie nowych pakietów ....................................................... 209Lista pakietów zawartych w Symfony ......................................................................... 209Zawarto� folderu vendor/ ........................................................................................... 210Pobieranie pakietów do folderu vendor/ .......................................................................... 211Do��czanie pakietów do kodu ..................................................................................... 212Przyk�ad 15.1. Przygotowanie dystrybucji symfony2-customized-v2
zawieraj�cej pakiet DoctrineFixturesBundle ............................................................ 212ROZWI�ZANIE ................................................................................................... 213
Rozdzia� 16. Podsumowanie cz��ci III ............................................................. 217
Cz��� IV Praca z baz� danych ................................................... 219
Rozdzia� 17. Pierwszy projekt wykorzystuj�cy baz� danych .............................. 221Przyk�ad 17.1. Imiona ................................................................................................. 221
ROZWI�ZANIE ................................................................................................... 222
Rozdzia� 18. ORM Doctrine 2 .......................................................................... 233Tworzenie i usuwanie bazy danych ............................................................................. 233Doctrine 2.1 ................................................................................................................. 234Tworzenie tabel w bazie danych ................................................................................. 235Struktura klas dost�pu do bazy danych ....................................................................... 236Dodawanie nowych w�a�ciwo�ci do istniej�cej klasy ................................................. 237Typy danych ................................................................................................................ 238Operowanie klasami dost�pu do bazy danych ............................................................. 240
Klasy Entity i EntityManager ................................................................................ 240Stan obiektu Entity ................................................................................................ 241Tworzenie nowych rekordów ................................................................................ 242Usuwanie rekordów .............................................................................................. 243Pobieranie wszystkich rekordów z bazy ................................................................ 243
Przyk�ad 18.1. Rzeki ................................................................................................... 243ROZWI�ZANIE ................................................................................................... 244
Rozdzia� 19. Dostosowywanie klas dost�pu do bazy danych ............................. 251Klasy Entity oraz Repository ....................................................................................... 251Podstawowe metody klas Repository .......................................................................... 252
Metoda find() ........................................................................................................ 252Metoda findAll() ................................................................................................... 253Metoda findBy() .................................................................................................... 253Metoda findOneBy() ............................................................................................. 254Metoda findByX() ................................................................................................. 254Metoda findOneByX() .......................................................................................... 255
Nadpisywanie metod klasy Entity ............................................................................... 255Metoda __toString() klasy Entity .......................................................................... 255Metoda fromArray () klasy Entity ......................................................................... 256
Nadpisywanie metod klasy Repository ....................................................................... 256Przyk�ad 19.1. Tatry .................................................................................................... 257
ROZWI�ZANIE ................................................................................................... 257
Rozdzia� 20. Podsumowanie cz��ci IV ............................................................. 265
Spis tre�ci 7
Cz��� V Zachowania Doctrine ................................................. 267
Rozdzia� 21. Instalacja i konfiguracja rozszerze� DoctrineExtensions ................ 269Przyk�ad 21.1. Przygotowanie dystrybucji symfony2-customized-v3
zawieraj�cej pakiet StofDoctrineExtensionsBundle .................................................. 270ROZWI�ZANIE ................................................................................................... 270
Rozdzia� 22. Zachowanie sluggable ................................................................. 275Identyfikatory slug ...................................................................................................... 275Automatyczne generowanie identyfikatorów slug w Symfony 2 ................................ 276Przyk�ad 22.1. Wyrazy — test zachowania sluggable ................................................. 277
ROZWI�ZANIE ................................................................................................... 277Parametry adnotacji konfiguruj�cych warto�ci slug .................................................... 280
Rozdzia� 23. Zachowanie timestampable ......................................................... 281Przyk�ad 23.1. Wyrazy — test zachowania timestampable ......................................... 282
ROZWI�ZANIE ................................................................................................... 282
Rozdzia� 24. Zachowanie translatable ............................................................. 283Wstawianie t�umacze do bazy danych ....................................................................... 284Odczytywanie t�umacze ............................................................................................ 286Przyk�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 ................................................................................. 297Adresy URL zawieraj�ce zmienne .............................................................................. 297
Konwersja wej�ciowa ............................................................................................ 298Konwersja wyj�ciowa ........................................................................................... 298
Wyszukiwanie pojedynczego rekordu na podstawie klucza g�ównego ....................... 298Wy�wietlanie w�a�ciwo�ci rekordu ............................................................................. 299Przyk�ad 26.1. Piosenki wojskowe .............................................................................. 299
ROZWI�ZANIE ................................................................................................... 300
Rozdzia� 27. Identyfikacja rekordu na podstawie warto�ci slug ........................ 307Przyk�ad 27.1. Piosenki wojskowe — u�ycie identyfikatorów slug ............................ 308
ROZWI�ZANIE ................................................................................................... 308
Rozdzia� 28. Generowanie menu na podstawie zawarto�ci bazy danych ............ 311Przyk�ad 28.1. Treny ................................................................................................... 311
ROZWI�ZANIE ................................................................................................... 312
Rozdzia� 29. Udost�pnianie plików binarnych ................................................... 319Przyk�ad 29.1. Download — pliki zapisane w bazie danych ....................................... 320
ROZWI�ZANIE ................................................................................................... 320Przyk�ad 29.2. Download — pliki pobierane z folderu ............................................... 325
ROZWI�ZANIE ................................................................................................... 325
Rozdzia� 30. Podsumowanie cz��ci VI ............................................................. 327
8 Symfony 2 od podstaw
Cz��� VII Relacje ...................................................................... 329
Rozdzia� 31. Relacje 1:1 ................................................................................. 331Klucze obce o warto�ci NULL .................................................................................... 332U�ycie relacji 1:1 w Symfony 2 .................................................................................. 332Operowanie rekordami powi�zanymi relacj� .............................................................. 334
Tworzenie rekordów ............................................................................................. 334Rekord zale�ny ...................................................................................................... 335
Przyk�ad 31.1. Dane u�ytkowników ............................................................................ 335ROZWI�ZANIE ................................................................................................... 335
Akcje referencyjne SQL .............................................................................................. 338Programowe akcje referencyjne Doctrine 2.1 .............................................................. 339
Parametr cascade ................................................................................................... 339Parametr orphanRemoval ...................................................................................... 340
Relacje jednokierunkowe i dwukierunkowe ................................................................ 340Synchronizacja obiektów z baz� danych ........................................................................ 342
Rozdzia� 32. Relacje 1:n (jeden do wielu) ........................................................ 345Klucze obce o warto�ci NULL .................................................................................... 346U�ycie relacji 1:n w Symfony 2 .................................................................................. 346W�a�ciciel relacji 1:n ................................................................................................... 349Operowanie rekordami powi�zanymi relacj� .............................................................. 349
Tworzenie rekordów ............................................................................................. 349Rekordy zale�ne .................................................................................................... 350Rekord nadrz�dny ................................................................................................. 351
Synchronizacja relacji ................................................................................................. 351Akcje referencyjne ...................................................................................................... 352
Akcje SQL-owe ..................................................................................................... 352Akcje Doctrine ...................................................................................................... 352
Przyk�ad 32.1. Kontynent i pastwa ............................................................................ 353ROZWI�ZANIE ................................................................................................... 353
Porz�dkowanie rekordów ............................................................................................ 357
Rozdzia� 33. Relacje n:m (wiele do wielu) ........................................................ 359U�ycie relacji n:m w Symfony 2 ................................................................................. 360W�a�ciciel relacji n:m .................................................................................................. 361Tabela ��cz�ca relacji n:m ........................................................................................... 362Operowanie rekordami powi�zanymi relacj� .............................................................. 362
Tworzenie rekordów ............................................................................................. 362Rekordy zale�ne .................................................................................................... 363Synchronizacja relacji ........................................................................................... 364Usuwanie powi�zania relacyjnego ........................................................................ 364
Akcje referencyjne SQL .............................................................................................. 365Akcje SQL-owe ..................................................................................................... 365
Przyk�ad 33.1. Filmy i aktorzy .................................................................................... 365ROZWI�ZANIE ................................................................................................... 365
Porz�dkowanie rekordów ............................................................................................ 370
Rozdzia� 34. Relacje, akcje index i show oraz widoki cz��ciowe ....................... 373Przyk�ad 34.1. Kontynenty/Pastwa — akcje show i widoki cz��ciowe ..................... 375Przyk�ad 34.2. Filmy/Aktorzy — akcje show i widoki cz��ciowe .............................. 376Przyk�ad 34.3. Powie�ci Agaty Christie ...................................................................... 376
ROZWI�ZANIE ................................................................................................... 377
Spis tre�ci 9
Rozdzia� 35. Podsumowanie cz��ci VII ............................................................ 385
Cz��� VIII Panele CRUD i zabezpieczanie dost�pu do aplikacji .... 387
Rozdzia� 36. Generowanie paneli administracyjnych CRUD ............................... 389Adresy URL akcji CRUD ..................................................................................... 391
Ponowne generowanie paneli CRUD .......................................................................... 394Panele CRUD a relacje ................................................................................................ 394Przyk�ad 36.1. Imiona — panel CRUD ....................................................................... 394
ROZWI�ZANIE ................................................................................................... 395Przyk�ad 36.2. Panel CRUD i relacja 1:1 .................................................................... 396
ROZWI�ZANIE ................................................................................................... 396Przyk�ad 36.3. Panel CRUD i relacja 1:n .................................................................... 399
ROZWI�ZANIE ................................................................................................... 399Przyk�ad 36.4. Panel CRUD i relacja n:m ...................................................................... 401
ROZWI�ZANIE ................................................................................................... 401
Rozdzia� 37. Instalacja pakietu FOSUserBundle ............................................... 403Przyk�ad 37.1. Przygotowanie dystrybucji symfony2-customized-v4
zawieraj�cej pakiet FOSUserBundle ......................................................................... 403ROZWI�ZANIE ................................................................................................... 403
Tworzenie kont i nadawanie uprawnie ...................................................................... 408Tworzenie kont ..................................................................................................... 409Aktywacja i deaktywacja konta ............................................................................. 409Nadawanie i usuwanie uprawnie administracyjnych ........................................... 409
Przyk�ad 37.2. Sprawdzenie dzia�ania dystrybucji symfony2-customized-v4 ............. 410ROZWI�ZANIE ................................................................................................... 410
Rozdzia� 38. Aplikacja dost�pna wy��cznie dla zdefiniowanych u�ytkowników ...... 415Uprawnienia dost�pu ................................................................................................... 415Role u�ytkowników ..................................................................................................... 416Nadawanie, usuwanie i sprawdzanie uprawnie u�ytkownikom ................................. 417Przyk�ad 38.1. Korona ziemi ....................................................................................... 419
ROZWI�ZANIE ................................................................................................... 420Hierarchia ról .............................................................................................................. 427
Rozdzia� 39. Aplikacja dost�pna publicznie w trybie do odczytu ........................ 429Przyk�ad 39.1. Korona ziemi — podzia� na frontend oraz backend ............................ 429
ROZWI�ZANIE ................................................................................................... 430Przekierowania ............................................................................................................ 432Osadzanie formularza do logowania na stronie g�ównej ............................................. 434Przyk�ad 39.2. Korona ziemi — osadzenie formularza do logowania w pliku
base.html.twig ........................................................................................................... 435ROZWI�ZANIE ................................................................................................... 435
Rozdzia� 40. Rejestracja u�ytkowników i odzyskiwanie has�a ........................... 439Przyk�ad 40.1. Kontynenty/pastwa — frontend i backend ........................................ 439
ROZWI�ZANIE ................................................................................................... 439Przyk�ad 40.2. Kontynenty/pastwa — rejestracja u�ytkowników ............................. 442
ROZWI�ZANIE ................................................................................................... 442Przyk�ad 40.3. Kontynenty/pastwa — odzyskiwanie has�a ....................................... 444
ROZWI�ZANIE ................................................................................................... 444
Rozdzia� 41. Podsumowanie cz��ci VIII ........................................................... 447
10 Symfony 2 od podstaw
Cz��� IX Panele administracyjne Sonata ................................... 449
Rozdzia� 42. Instalacja pakietów Sonata .............................................................. 451Przyk�ad 42.1. Przygotowanie dystrybucji symfony2-customized-v5
zawieraj�cej pakiet SonataAdminBundle .................................................................. 451ROZWI�ZANIE ................................................................................................... 452Krok 1. Wypakuj dystrybucj� Symfony 2.0.X without vendors ............................ 452Krok 2. Zmodyfikuj plik deps ............................................................................... 452Krok 3. Pobierz pakiety ......................................................................................... 453Krok 4. Usu foldery .git ...................................................................................... 453Krok 5. Zarejestruj przestrzenie nazw ................................................................... 453Krok 6. Zarejestruj pakiety .................................................................................... 454Krok 7. Zmodyfikuj konfiguracj� projektu ........................................................... 454Krok 8. Zmodyfikuj zabezpieczenia projektu ....................................................... 455Krok 9. Utwórz pakiet Application/Sonata/UserBundle ....................................... 457Krok 10. Zmodyfikuj regu�y routingu ................................................................... 457Krok 11. Zainstaluj style CSS oraz ikony ............................................................. 458Krok 12. Skompresuj otrzyman� dystrybucj� ....................................................... 458
Przyk�ad 42.2. Sprawd� dzia�anie dystrybucji symfony2-customized-v5 ................... 458ROZWI�ZANIE ................................................................................................... 459Krok 1. Wypakuj dystrybucj� i skonfiguruj baz� danych ..................................... 459Krok 2. Utwórz tabele w bazie danych ................................................................. 459Krok 3. Utwórz konto administratora .................................................................... 459Krok 4. Sprawd� wygl�d panelu administracyjnego ............................................. 459
Rozdzia� 43. U�ycie paneli administracyjnych Sonata do w�asnych tabel ............. 461Przyk�ad 43.1. Miasta .................................................................................................. 461
ROZWI�ZANIE ................................................................................................... 462Krok 1. Wypakuj dystrybucj� i skonfiguruj baz� danych ..................................... 462Krok 2. Utwórz pakiet My/Frontend ..................................................................... 462Krok 3. Utwórz klas� CityAdmin .......................................................................... 462Krok 4. W��cz panel administracyjny do zarz�dzania rekordami City .................. 463Krok 5. Przygotuj plik zawieraj�cy t�umaczenia ................................................... 464Krok 6. Sprawd� wygl�d panelu administracyjnego do edycji miast .................... 464
Rozdzia� 44. Podsumowanie cz��ci IX ............................................................. 467Przyk�ad 44.1. Przygotowanie dystrybucji symfony2-customized-v6
zawieraj�cej omówione pakiety ................................................................................ 467Przyk�ad 44.2. Rzeki: aplikacja z panelem Sonata ...................................................... 468
ROZWI�ZANIE ................................................................................................... 468Krok 1. Po��cz przyk�ad 18. z dystrybucj� symfony2-customized-v6.zip ............. 468Krok 2. Wykonaj panel Sonata ............................................................................. 469
Przyk�ad 44.3. Kontynenty: aplikacja z panelem Sonata ............................................. 469ROZWI�ZANIE ................................................................................................... 469
Przyk�ad 44.4. Filmy: aplikacja z panelem Sonata ...................................................... 470Przyk�ad 44.5. Powie�ci Agaty Christie: aplikacja z panelem Sonata ......................... 470
Dodatki ..................................................................... 471
Dodatek A Instalacja oprogramowania .......................................................... 4731. XAMPP ................................................................................................................... 4732. Modyfikacja konfiguracji PHP ................................................................................ 4753. Modyfikacja pakietu PEAR ..................................................................................... 4764. Uaktualnienie biblioteki PEAR ............................................................................... 476
Spis tre�ci 11
5. Code Sniffer ............................................................................................................ 4776. phpDocumentor ....................................................................................................... 4777. PHPUnit .................................................................................................................. 4778. Cygwin .................................................................................................................... 4789. �cie�ki dost�pu ........................................................................................................ 48010. GraphViz ............................................................................................................... 48211. NetBeans ............................................................................................................... 482
Skorowidz ................................................................................... 483
Rozdzia� 43.
U�ycie paneliadministracyjnych Sonatado w�asnych tabel
Panel administracyjny przedstawiony na rysunku 42.2 umo�liwia� zarz�dzanie rekordamitabel:
fos_user_groupfos_user_userfos_user_user_group
Teraz zajmiemy si� dostosowaniem paneli w taki sposób, by umo�liwia�y edycj� rekor-dów z dowolnej tabeli, dla której jest dost�pna klasa Entity.
Przyk�ad 43.1. MiastaWykonaj witryn�, która b�dzie prezentowa�a dane dotycz�ce miast:
� nazw� miasta,
� populacj�.
Witryn� wykonaj w taki sposób, by po odwiedzeniu adresu:.../web/
wy�wietlane by�o zestawienie informacji o wszystkich miastach. Dane na stronie .../web/maj� by dost�pne w trybie do odczytu dla wszystkich odwiedzaj�cych ten adres.
Ponadto pod adresem:.../web/admin/dashboard
462 Cz��� IX � Panele administracyjne Sonata
wykonaj panel administracyjny pozwalaj�cy na edycj� informacji o miastach. Panel tenma by dost�pny wy��cznie po zalogowaniu na konto:
U�ytkownik: adminHas�o: password
Wykorzystaj wykonan� w poprzednim rozdziale dystrybucj� symfony2-customized-v5.zip.
ROZWIZANIE
Krok 1. Wypakuj dystrybucj� i skonfiguruj baz� danych
Utwórz baz� danych o nazwie cities oraz konto dost�pu do bazy editor zabezpieczonehas�em secretPASSWORD. Nast�pnie wypakuj archiwum symfony2-customized-v5.zip, poczym w pliku app/config/parameters.ini wprowad� dane dost�pu do bazy danych cities.
Krok 2. Utwórz pakiet My/Frontend
Analogicznie jak w przyk�adzie z rozdzia�u 18. wykonaj pakiet My/Frontend. W pakiecietym ma si� znajdowa jedna klasa Entity o nazwie City. W klasie City utwórz dwiew�a�ciwo�ci:
� name — typu string o d�ugo�ci 255 znaków;
� population — typu integer.
Wykonaj kontroler oraz skonfiguruj routing w taki sposób, by po odwiedzeniu strony:.../web/
wy�wietlane by�o zestawienie wszystkich rekordów z tabeli city. W przyk�adzie tym niewykonuj fikstur — wype�nianie bazy wykonamy, wykorzystuj�c panel administracyjny.
Krok 3. Utwórz klas� CityAdmin
W folderze My/FrontendBundle/Admin utwórz plik CityAdmin.php zawieraj�cy klas�przedstawion� na listingu 43.1. Klasa ta konfiguruje panel administracyjny do zarz�-dzania rekordami z tabeli city.
Listing 43.1. Klasa My/FrontendBundle/Admin/CityAdmin.php
<?php
namespace My\FrontendBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;use Sonata\AdminBundle\Datagrid\ListMapper;use Sonata\AdminBundle\Datagrid\DatagridMapper;use Sonata\AdminBundle\Validator\ErrorElement;
Rozdzia� 43. � U�ycie paneli administracyjnych Sonata do w�asnych tabel 463
use Sonata\AdminBundle\Form\FormMapper;
class CityAdmin extends Admin{ protected function configureFormFields(FormMapper $formMapper) { $formMapper ->add('name') ->add('population', 'number') ; }
protected function configureDatagridFilters(DatagridMapper $datagridMapper) { $datagridMapper ->add('name') ; }
protected function configureListFields(ListMapper $listMapper) { $listMapper ->addIdentifier('name') ->add('population', 'number') ; }
}
Krok 4. W��cz panel administracyjnydo zarz�dzania rekordami City
Utwórz plik My/FrontendBundle/Resources/config/services.xml, o zawarto�ci takiej jakna listingu 43.2.
Listing 43.2. Plik My/FrontendBundle/Resources/config/services.xml
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/serviceshttp://symfony.com/schema/dic/services/services-1.0.xsd">
<services> <service id="sonata.admin.city" class="My\FrontendBundle\Admin\CityAdmin"> <tag name="sonata.admin" manager_type="orm" group="Dane" label="Miasta"/> <argument /> <argument>My\FrontendBundle\Entity\City</argument> <argument>SonataAdminBundle:CRUD</argument> <call method="setTranslationDomain"> <argument>MyFrontendBundle</argument> </call>
464 Cz��� IX � Panele administracyjne Sonata
</service> </services>
</container>
Krok 5. Przygotuj plik zawieraj�cy t�umaczenia
Utwórz plik My/FrontendBundle/Resources/translations/MyFrontendBundle.pl.xliff,o zawarto�ci takiej jak na listingu 43.3.
Listing 43.3. Plik My/FrontendBundle/Resources/translations/MyFrontendBundle.pl.xliff
<?xml version="1.0"?><xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="" > <body> <trans-unit id="1"> <source>Dashboard</source> <target>Pulpit</target> </trans-unit> <trans-unit id="2"> <source>Name</source> <target>Nazwa</target> </trans-unit> <trans-unit id="3"> <source>Population</source> <target>Populacja</target> </trans-unit> <trans-unit id="4"> <source>City List</source> <target>Lista miast</target> </trans-unit> <trans-unit id="5"> <source>City Edit</source> <target>Edytuj miasto</target> </trans-unit> <trans-unit id="6"> <source>City Delete</source> <target>Usu� miasto</target> </trans-unit> </body> </file></xliff>
Krok 6. Sprawd wygl�d panelu administracyjnegodo edycji miast
Po odwiedzeniu adresu:.../web/admin/washboard
i zalogowaniu na konto administratora ujrzysz panel przedstawiony na rysunku 43.1.
Rozdzia� 43. � U�ycie paneli administracyjnych Sonata do w�asnych tabel 465
Rysunek 43.1. Panel administracyjny do zarz�dzania rekordami z tabeli city
Menu wskazane strza�k� jest zdefiniowane wpisami:<tag name="sonata.admin" manager_type="orm" group="Dane" label="Miasta"/>
z listingu 43.2. T�umaczenia, m.in.:Lista miastPopulacja
powstaj� natomiast na podstawie wpisów z listingu 43.3:<trans-unit id="3"> <source>Population</source> <target>Populacja</target></trans-unit><trans-unit id="4"> <source>City List</source> <target>Lista miast</target></trans-unit>
SkorowidzA
adnotacja@Gedmo\Translatable, 284, 286@ORM\Column, 238, 239@ORM\Entity, 301@ORM\JoinColumn, 339@ORM\JoinTable, 362@ORM\ManyToOne, 347@ORM\OneToMany, 347@ORM\OneToOne, 333, 340@ORM\OrderBy, 358@Route, 35, 68, 104, 125, 298,
391@Table, 235, 238@Template, 35, 114, 323
adresdo akcji, 431login, 431login_check, 431logout, 431URL, 68, 297, 391
adresy slug, 470akcelerator APC, 22akcja, action, 25
create, 391, 393dataAction(), 130delete, 391, 394dolorAction(), 118edit, 391, 393index, 102, 231, 390indexAction(), 126ipsumAction(), 124loremAction(), 118, 297menuAction(), 200, 316new, 391, 393Novel/index, 383referencyjna
cascade, 339Doctrine, 339ON DELETE CASCADE, 338
sAction(), 126show, 297, 304, 327, 373, 390
sitAction(), 118update, 391, 393
akcjeDoctrine, 352kontrolera DefaultController,
322referencyjne, referential actions,
338, 352referencyjne SQL, 365SQL-owe, 352
aktualizacja, ON UPDATE, 338aktywacja konta, 409analiza odpowiedzi HTTP, 127Apache, 473aplikacja
ACME demo, 101dost�pna publicznie, 429
atak typuCross Site Request Forger, 132Cross Site Scripting, 132
automatyczne �adowanie klas, 212, 215autoryzacja, 407
Bbackend, 439baza danych, 222
achristie, 377cities, 462colors, 287download, 320filmy, 366kontynenty, 353koronaziemi, 420mountains, 258names, 222, 228rivers, 244, 245songs, 301treny, 312users, 335
bibliotekaDoctrine 2.1, 265DoctrineExtensions, 269, 273, 293ORM Doctrine 2.1, 234
PEAR, 476swiftmailer, 19Twig, 111, 119
biblioteki ORM, 269blokowanie dost�pu do plików, 95b��d, 20–22
403, 444404, 83, 104
Ccachowanie, 127ci�gi slug, 275ci�gi znaków, 140
Ddefiniowanie
adresu, 102akcji referencyjnej, 339relacji 1:n, 347zmiennych, 144
deklaracja przestrzeni nazewniczej,42
DETACHED, 241Doctrine 2.1, 339dodawanie pakietu, 209, 212, 214dokumentacja Doctrine 2, 235domena
projektu, 96wirtualna, 94
dost�p doaplikacji, 421bazy danych, 258rekordów, 234tabeli, 236
dwukierunkowa relacja1:n, 354n:m, 366
dwukropki, 60dystrybucja
Symfony 2.0, 17, 217symfony2-customized-v6.zip, 467
484 Symfony 2 od podstaw
dystrybucjawith vendors, 17, 23, 101without vendors, 17, 23, 44
dziedziczenie, 175
Eetykiety formularza, 395
Ffikstur, fixtures, 212filtr
escape, 133keys, 149nl2br, 212truncate, 212wordwrap, 212
filtry, filters, 169Twig, 181
folderapp, 18bin, 18bundles, 48cache, 20css, 48doc, 32Entity, 234, 252js, 48mylake, 56public, 32public_html, 98src, 18Symfony, 21tatras, 53translations, 32vendor, 17, 18, 210web, 19views, 60
folder zawieraj�cy projekt, 211foldery .git, 214format
konfiguracji pakietu, 44PHP, 46XML, 45YAML, 45
formularz, 395logowania, 424, 433, 437, 440rejestracyjny, 442
formularze edycyjne, 397frontend, 439funkcja
array_shift(), 314asset(), 47, 63base64_decode(), 320base64_encode(), 320basename(), 314, 321extends, 60file_get_contents(), 321finfo_file(), 321htmlspecialchars(), 132
menuAction(), 201parent(), 177path(), 68, 191showAction(), 188shuffle(), 313str_replace(), 314
funkcje, functions, 169konwertuj�ce dane, 319Twig, 184
Ggenerowanie
b��dów, 92identyfikatorów slug, 276, 277klasy dost�pu, 245, 258menu, 311paneli CRUD, 394panelu administracyjnego, 390
Hhas�o dost�pu do serwera, 100hierarchia ról, 427
Iidentyfikator slug, 275, 308, 379instalacja
biblioteki, 270oprogramowania, 473pakietów Sonata, 452pakietu FOSUserBundle, 403programu
curl, 479git, 479openssh, 479rsync, 478
instrukcja, 137{ % raw %}, 120{% block %}, 120{% extends %}, 120{% set %}, 144{{ }}, 121, 132, 137for, 147if, 148, 150namespace, 43use, 43, 243
Kkaskadowo� operacji zapisu, 398klasa
Aktor, 366AuthenticatedVoter, 417CityAdmin, 462Color, 284, 288Detective, 378Dolor, 234Entity, 240, 299EntityManager., 240
File.php, 325Film, 366formularza, 397Lorem.php, 237LoremRepository, 252Method, 379MountainRepository, 259Name, 392Name.php, 226NameController, 391Novel, 378, 379odwrotna relacji, inverse side,
342, 361, 385Profil, 341Repository, 379ResponseHeaderBag, 125River.php, 245RiverAdmin.php, 469Sit, 26Song, 301SongRepository, 301TrenRepository, 312User, 341UserType, 398Word, 278
klasydost�pu do bazy danych, 234, 236Entity, 251Repository, 251
kluczg�ówny, 285obcy, foreign key, 331, 345obcy o warto�ci NULL, 332, 346
kodakcji index, 230, 248, 261, 290,
303, 337akcji show, 304, 310menu, 310SQL, 223
kodowanie, 477kodowanie znaków utf8, 223kolory RGB, 164komenda find, 211komenda rm, 211kompresowanie folderu, 216komunikat Zaloguj, 424konfiguracja
identyfikatorów slug, 280konta pocztowego, 444routingu, 45zabezpiecze, 406zachowa, 270
konfigurowaniepakietu, 217PHP, 475
konsola bash, 271konto administratora, 411, 458konto dost�pu
do aplikacji, 422do bazy, 462pocztowe, 444
Skorowidz 485
kontroler, controller, 25, 27Aktor, 369app.php, 40app_dev.php, 40BramaController, 74DefaultController, 35Film, 368Kontynent, 355LoremController, 67MountainController, 421Novel, 381Panstwo, 356WiezaController, 74ZamekController, 74
konwersjawej�ciowa, 298wyj�ciowa, 298
konwertowanie znaków, 132kopiowanie zasobów, 103
L, �layout, 57liczby, 140lista
aktorów, 376filmów, 376hiper��czy, 373kontynentów, 375pastw, 375znaczników, 170
localhost, 105logiczne nazwy
kontrolerów, 227modeli, 227widoków, 227
logowanie, 424�adowanie pakietów, 217
Mmakrodefinicja
autolink, 171str, 172
MANAGED, 241metoda
__toString(), 255, 299, 469addFilm(), 362, 364addPanstwo(), 349createNotFoundException(), 189dataAction(), 131detach(), 242dolorAction(), 114, 115find(), 252findAll(), 242, 253, 256, 316findBy(), 253findByX(), 254findOneBy(), 254findOneBySlug(), 307findOneByX(), 255flush(), 241
fromArray (), 256get(), 227, 237getAktorzy(), 363getAll(), 243getContents(), 325getFilmy(), 363getId(), 237getIpsum(), 237getKontynent(), 351getLength(), 246getPanstwa(), 350getProfil(), 335getSlug(), 276godzinaAction(), 131indexAction(), 35, 122, 125,
199, 229, 290menuAction(), 201persist(), 241, 242refresh(), 286remove(), 242, 243removeElement(), 364render(), 116, 124set(), 124, 227, 237setContents(), 325setIpsum(), 237setKontynent(), 349setLength(), 246setSlug(), 276setTranslatableLocale(),
283–286setUser(), 343showAction(), 187, 199
metody klasyKontynent, 347Panstwo, 348Repository, 252User, 333
modelDetective, 376Method, 377MyFrontendBundle:File, 320MyBackendBundle:Mountain,
420MyFrontendBundle:Name, 390Novel, 376
modyfikacja konfiguracji projektu,272
modyfikowanienag�ówków, 124pakietu PEAR, 476przekierowa, 442zabezpiecze, 455
MySQL, 223, 473
Nnadawanie uprawnie, 408nadpisywanie
metod, 255, 256widoków, 91, 113zawarto�ci bloków, 177
nag�ówek Content-Type, 125narz�dzie rsync, 97nawiasy okr�g�e, 143nazwa logiczna widoku, 111, 114nazwy skrócone, 44nazwy widoków akcji, 114NEW, 241numer portu 40022, 99
Oobiekt
$entity, 299Entity, 241
odwo�ania do plików graficznych, 63odzyskiwanie has�a, 444operacja
create, 389delete/destroy, 389read/retrieve, 389update, 389
operator is, 143operatory
arytmetyczne, 141logiczne, 142porównania, 141specjalne, 142
oprogramowanieORM, 19PHPUnit, 477
osadzanie formularza, 434, 435
Ppakiet, bundle, 25
Acme, 106BackendBundle, 440Code Sniffer, 477Cygwin, 478demo, 49DoctrineExtensionsBundle, 27,
276DoctrineFixturesBundle, 26, 215DoctrineMigrationsBundle, 27FOSCommentBundle, 27FOSUserBundle, 27, 447FrontendBundle, 430, 440KnpMarkdownBundle, 26KnpPaginatorBundle, 26LoremBundle, 79My/AnimalsBundle, 86My/FraszkaBundle, 69My/Frontend, 462My/FrontendBundle, 257, 440My/HelloworldBundle, 29My/LakeBundle, 54My/MultiplicationBundle, 157My/NovelBundle, 198My/PoemBundle, 61MyHelloworldBundle, 34PEAR, 476
486 Symfony 2 od podstaw
pakiet, bundlephpDocumentor, 477rsync, 478SonataAdminBundle, 27, 451SonataPageBundle, 27StofDoctrineExtensionsBundle,
270–272, 293symfony2-customized-v1.zip, 106symfony2-customized-v2.zip, 212UserBundle, 457valley, 50XAMPP, 473zabytek, 74
pakietydo przetwarzania plików, 212komunikacyjne, 319Sonata, 451Symfony 2, 209, 218
pami� podr�czna, cache, 127, 425panel administracyjny, 459, 461, 463
CRUD, 389, 394–396, 420, 430XAMPP, 474
panel Sonata, 469parametr
$culture, 290cascade, 339layout.login, 424nullable, 333, 348orphanRemoval, 340path, 415repositoryClass, 251role, 416
pasek narz�dzideveloperskich, 37Web Debug Toolbar, 39
p�tla{% for %}, 150, 201for, 292
PHP, 473plik
00index.log, 197app.php, 19, 40app_dev.php, 19, 40AppKernel.php, 32, 40, 271,
453, 457autoload.php, 215, 271, 453base.html.twig, 195, 212, 432,
436, 441BramaController.php, 74Color.php, 288config.yml, 192, 272, 407config.php, 19config_prod.yml, 41Controller.php, 37CSS, 203dedykacja.txt, 311DefaultController.php, 34, 40, 61,
70, 86, 117, 131, 135, 152,155, 158
deps, 210, 270deps.lock, 210
dogoscia.html.twig, 71error.html.twig, 84, 85error404.html.twig, 85, 88error500.html.twig, 85filmy.xml, 365FOSUserBundle.pl.yml, 424imiona.txt, 221index.html.twig, 40, 316ipsum.txt.twig, 124jada-jada-misie.txt, 185Kernel.php, 32kolory.yml, 286KontynentAdmin.php, 469kontynenty.xml,, 353korona-ziemi.txt, 151layout.html, 58layout.html.twig, 59, 311LoadData.php, 247, 260, 279,
288, 302, 313, 321, 336, 354,367, 380
LoremController.php, 67menu.html.twig, 201, 317Mountain.php, 259mountains.xml, 257MyFrontendBundle.pl.xliff, 464Name.php, 389PanstwoAdmin.php, 469parameters.ini, 227, 233, 244, 258php.ini, 98ProfilType.php, 397properties.ini, 410rivers.yml, 243routing.yml, 33, 69, 289, 407, 431routing_dev.yml, 40rsync_exclude.txt, 99rsync-production.bat, 98schema.yml, 235security.yml, 406, 415, 423, 455services.xml, 463show.html.twig, 316Sit.php, 26songs.yml, 299style.css, 85Symfony_Standard_2.0.x.zip, 17Symfony_Standard_Vendors_
2.0.X.zip, 17, 18, 28, 53tekst.html, 58tworzenie-pustej-bazy-
danych.bat, 223tworzenie-pustej-bazy-
danych.sql, 244users.xml, 335WiezaController.php, 74Word.php, 278ZamekController.php, 74zawieraj�cy t�umaczenia, 464
pliki.htaccess, 31, 95.twig, 127deps, 210deps.lock, 210
hosts, 94z trenami, 312
pobieraniepakietów, 211, 214, 271rekordów, 243Symfony 2, 213
podzia� uprawnie, 429podzia� widoków, 195, 198polecenia modyfikuj�ce plik, 476polecenie
deny from all, 31generate:bundle, 31, 42, 102rsync, 98
po��czenie z baz� danych, 227, 258powi�zanie tabel relacj� 1:1, 332priorytet operatorów, 143program
GraphViz, 482instalacyjny, 473NetBeans, 482phpMyAdmin, 224
projekt Sonata, 451, 457protokó� SSH, 99przedrostek ROLE_, 416przekazywanie danych, 130przekazywanie do widoku
obiektów, 139tablic, 138
przekierowanie, 432prze�adowanie uprawnie, 223przestrze nazewnicza
Gedmo, 271Stof, 271
przestrze nazw, namespace, 25przetwarzanie widoków, 111przyk�ad
bezpieczna paleta kolorów, 163dane u�ytkowników, 335data i godzina, 130Dolina Pi�ciu Stawów Polskich,
53download, 320, 325Dwa kabele, 60dzia�anie dystrybucji, 458dzie�a literatury �wiatowej, 155filmy, 470filmy i aktorzy, 365Fraszki, 69gady, 86, 93, 95, 97Hello, world!, 28imiona, 221, 394kolory, 286kontynent i pastwa, 353kontynenty, 469kontynenty/pastwa, 375, 439,
442, 444korona ziemi, 151, 419, 429, 435miasta, 461opowiadania Edgara Allana Poe,
197panel CRUD, 396, 401piosenki
Skorowidz 487
dla dzieci, 77dzieci�ce, 185wojskowe, 299, 308
powie�ci Agaty Christie, 376,470
przygotowanie dystrybucji, 212,270, 451, 467
Pusta Dolinka, 49rzeki, 243, 468sprawdzenie dzia�ania
dystrybucji, 410tabela pot�g, 161tabliczka mno�enia, 157Tatry, 257treny, 311wyrazy, 277, 282zabezpieczanie zmiennych, 134zabytki Lublina, 72
publikowanie projektu, 105
Rregu�a
@Template(), 115konfiguracyjna autoescape, 133translacji adresu, 289w��czaj�ca adres, 81
regu�y routingu, 34, 422, 437, 457rejestracja
pakietu, 212, 215, 271, 453przestrzeni nazw, 271, 453u�ytkownika, 439, 442
rekordnadrz�dny, 351zale�ny, 335, 350, 363
relacja1:1, 331, 3361:n, 345, 378, 399dwukierunkowa, bidirectional,
340jednokierunkowa,
unidirectional, 340n:m, 359, 361, 379, 401
REMOVED, 241rola
IS_AUTHENTICATED_ANONYMOUSLY, 416, 417
ROLE_SUPER_ADMIN, 417role u�ytkowników, 416routing, 104rozszerzanie
funkcjonalno�ci modelu, 312.html.twig, 28.twig, 119DoctrineExtensions, 308DoctrineFixturesBundle, 222podwójne .html.twig, 112, 123
S, �serializacja, 418serwer
Apache, 22hostingowy, 93, 319Light Hosting, 97MySQL, 223, 319NetArt, 95wirtualny
regu�y konfiguruj�ce, 94skórka, 248, 260, 302, 314, 356,
369, 384skrypt
app.php, 19, 23app_dev.php, 19, 23autoload.php, 212, 215config.php, 19, 23, 101rsync-production.bat, 99, 100tworzenie-pustej-bazy-
danych.sh, 223s�owo kluczowe DEFAULT, 240sortowanie
rekordów, 313, 358, 370tekstów, 223
SQL, 223, 240stan
DETACHED, 241MANAGED, 241NEW, 241REMOVED, 241
stany obiektu Entity, 241strona b��du 404, 85strona g�ówna, 356strona rejestracji, 446struktura pakietu, 31synchronizacja relacji, 351, 364synchronizowanie obiektów z baz�
danych, 342system szablonów, 19szablon
base.html.twig, 174, 176, 436,440
index.html.twig, 36layout.html.twig, 61, 70, 75, 87,
103menu.html.twig, 201PHP, 206witryny, 57, 432
szablony b��dów, 85�cie�ki prowadz�ce
do pakietu Cygwin, 480do PHP, 480
�rodowiskodeweloperskie, 40produkcyjne, 40, 127
Ttabea profil, 331tabela
aktor, 359, 366docelowa, 331, 345ext_translations, 285file, 320, 325film, 359, 366film_aktor, 366fos_user, 410kontynent, 345, 354��cz�ca relacje, 359��cz�ca relacji n:m, 362mountain, 260name, 225, 228panstwo, 345, 354profil, 336river, 245song, 301, 309tren, 312user, 331, 336word, 279, 282�ród�owa relacji, 331, 345
tabele dodatkowe, 272tabelka hiper��czy, 382tablica, 138
$data, 229$menuData, 200$t, 314menuData, 201
tabliceasocjacyjne, 140indeksowane, 140
terminbackend, 429frontend, 429
t�umaczenie, 284, 414, 464translacja adresu, 289Twig, 111
drukowanie znaczników, 121filtry, 169, 181funkcje, 169, 184instrukcje steruj�ce, 120komentarze, 120komentarze wielowierszowe,
120operatory, 141wyra�enia, 140znaczniki, 121, 169
tworzenieakcji, 65bazy danych, 222, 233kont, 409konta administratora, 458kontrolerów, 67pakietów, 29, 42, 67projektu, 28rekordów, 242, 334, 349, 362tabel, 228, 235
488 Symfony 2 od podstaw
typ blob, 319typ kolumny, 282typ MIME, 321, 325typy danych, 238
Uuk�ad graficzny, 57uprawnienia
do aplikacji, 431do witryny, 431dost�pu, 415konta, 417plików i folderów, 98u�ytkownika, 417
uprawnienieROLE_ADMIN, 427, 439ROLE_USER, 427
uruchamianie projektu, 46ustalanie strony g�ównej, 203usuwanie, ON DELETE, 338
akcji, 66bazy danych, 233kontrolera, 67pakietu, 42, 67, 213pakietu demo, 28powi�zania relacyjnego, 364rekordów, 243uprawnie, 409, 426
u�ytkownikuprawnienia, 417
Wwarto�
logiczna, 140NULL, 239slug, 280, 307
wersja Symfony 2, 213widok, view, 25, 28
akcji, 123akcji index, 249, 261, 291, 303,
316, 337, 355, 369akcji jaszczurka, 88akcji menu, 317akcji show, 304, 316base.html.twig, 178, 190, 196,
201, 248, 260, 302, 423cz��ciowy, 373, 374, 382error403.html.twig, 444error404.html.twig, 89error500.html.twig, 91formularza, 435index.html.twig, 38, 51, 55, 62,
174, 178, 197layout.html.twig, 178, 196, 202,
248, 261, 315lorem.html.twig, 119menu.html.twig, 201powitanie.html.twig, 136
show.html.twig, 191, 202show.txt.twig, 192
w�a�ciciel relacji, owing side, 342,349, 385
1:n, 349n:m, 361
w�a�ciwo�ci rekordu, 299w�a�ciwo�
$caption, 227$id, 227$locale, 283$profil, 332$slug, 276created, 282length, 246name, 284slug, 278updated, 282
w��czanie filtrów, 213w��czenie zachowa timestampable,
281wtyczka
FOSUserBundle, 416Live HTTP Headers, 84
wyj�tek, 334wylogowanie, 423wype�nianie tabeli, 228wyra�enia Twig, 139wyszukiwanie, 368wyszukiwanie rekordu, 298
Zzabezpieczanie zmiennych, 134zabezpieczenia, 406zachowania, behaviours, 269
Doctrine, 293zachowanie
sluggable, 269, 275–278, 308timestampable, 269, 281translatable, 269, 283–284, 292
zalogowany u�ytkownik, 415zasoby zewn�trzne, 47, 103Zend Framework, 27zmienna
$culture, 289$entities, 231$entity, 299$novel, 200$slug, 200$title, 200$tytul, 314ipsum, 130loop, 148loop.first, 149loop.index, 148loop.last, 149slug, 203
zmienneglobalne, 145tablicowe, 138
znacznik, tag, 169{% block %}, 177{% extends %}, 178{% include %}, 385{% render %}, 201{{ }}, 130, 139autoescape, 134, 180block, 175do, 180extends, 173, 175filter, 172flush, 180for, 149, 171from, 171head, 196if, 171import, 171include, 179link, 196macro, 171meta, 196raw, 180render, 181set, 173spaceless, 179use, 178
znaczniki, 169czasu, 282HTML, 111Twig, 121
znak |, 200