symfony2. rozbudowa frameworka full version.pdf

(21395 KB) Pobierz
Spis tre ci
O autorze
O recenzentach
Wst p
Zawarto ksi ki
Co jest potrzebne?
Dla kogo jest ta ksi ka?
Konwencje
Pomoc
5
7
9
9
10
10
11
11
Rozdzia 1. Us ugi i procedury nas uchowe
Us ugi
Us uga geolokalizacji
Testowanie us ug i testowanie przy u yciu us ug
Znakowanie us ug
Procedury nas uchuj ce
Aktualizowanie preferencji u ytkownika przy u yciu w asnych zdarze
Poprawianie wydajno ci
Podsumowanie
13
13
14
19
21
25
27
30
32
Rozdzia 2. Polecenia i szablony
Polecenia
Pocz tkowa sytuacja
Zmienianie rozmiaru obrazów u ytkowników
Testowanie polecenia
Polecenia jako interfejs do us ug
Twig
Zarz dzanie skryptami
Testowanie rozszerzenia Twig
Filtr ró nicy czasowej
Podsumowanie
33
33
33
34
37
38
40
41
43
44
45
Kup książkę
Poleć książkę
Spis tre ci
Rozdzia 3. Formularze
Element wej ciowy dla wspó rz dnych geograficznych
Podstawowa konfiguracja
U ywanie mapy
Przekszta canie danych
Formularze wykorzystuj ce dane u ytkowników
O krok dalej
Pocz tkowa konfiguracja
Dodawanie i usuwanie pól
Podsumowanie
47
47
49
51
54
56
57
58
60
62
Rozdzia 4. Bezpiecze stwo
Uwierzytelnianie
Proste uwierzytelnianie OAuth poprzez GitHub
Autoryzacja
Votery
Adnotacje
Zabezpieczanie API — przyk ad
Podsumowanie
63
63
64
74
75
80
85
87
Rozdzia 5. Doctrine
Tworzenie w asnych typów danych
Miejsce przebywania u ytkowników i miejsca spotka
Testowanie
W asne funkcje DQL
Kontrola wersji
Ustawianie wersji wszystkich jednostek
U ywanie i aktualizowanie wersji
Testowanie
Tworzenie filtra Doctrine
Podsumowanie
89
89
89
92
93
97
99
100
101
103
106
Rozdzia 6. Udost pnianie w asnych rozszerze innym programistom
Tworzenie pakietu
Udost pnianie konfiguracji
Przygotowanie do udost pnienia pakietu
Badania
Dokumentacja
Testowanie
Dystrybucja i licencjonowanie
Czy to jest tylko pakiet?
Podsumowanie
107
107
110
116
116
116
116
118
119
120
Skorowidz
121
4
Kup książkę
Poleć książkę
1
Us ugi i procedury
nas uchowe
W rozdziale tym znajduje si opis podstawowych wiadomo ci na temat systemu Symfony2.
Najwa niejszym poj ciem jest
us uga
(ang.
service).
W istocie wi ksza cz
samego systemu
jest wielkim zbiorem gotowych do u ywania us ug. Na przyk ad po zainstalowaniu systemu
mo na przej w konsoli do katalogu g ównego projektu i wpisa polecenie
php app/console
container:debug
, aby wy wietli list wszystkich aktualnie zdefiniowanych w aplikacji us ug.
Je li to zrobisz, dowiesz si , e nawet jeszcze przed rozpocz ciem pracy masz do dyspozycji
prawie 200 us ug. Polecenie
php app/console container:debug <nazwa_us
ugi>
zwraca infor-
macje o wybranej us udze; przyda si ono wielokrotnie w trakcie studiowania tej ksi ki.
Us ugi
Us uga jest konkretnym egzemplarzem jakiej klasy. Gdy programista u ywa, powiedzmy,
doctri-
ne
, np.
$this->get('doctrine');
w kontrolerze, znaczy to, e korzysta z us ugi. Ta us uga jest
egzemplarzem klasy
Doctrine EntityManager
, którego nigdy nie trzeba tworzy samodzielnie. Kod
potrzebny do jego utworzenia jest do skomplikowany, poniewa wymaga po czenia z baz
danych, pewnych parametrów konfiguracyjnych itd. Gdyby ta us uga nie by a ju zdefiniowa-
na, trzeba by tworzy takie egzemplarze samodzielnie. Gdyby zasz a konieczno zrobienia
tego w ka dym kontrolerze, kod aplikacji sta by si zagmatwany i trudny w obs udze.
Oto kilka z domy lnych us ug dost pnych w Symfony2:
czytnik adnotacji,
Assetic — biblioteka do zarz dzania zasobami,
Kup książkę
Poleć książkę
Symfony2. Rozbudowa frameworka
dyspozytor zdarze ,
fabryka wid etów formularza i formularzy,
j dro i sk adnik HttpKernel Symfony2,
monolog — biblioteka obs ugi dzienników,
ruter,
Twig — silnik szablonów.
W systemie Symfony2 bardzo atwo tworzy si nowe rozszerzenia. Je li Twój kontroler bardzo
si rozrós i trudno nad nim zapanowa , dobrym sposobem jego poprawienia i uproszczenia
jest przesuni cie cz ci kodu do us ug. Wi kszo us ug to obiekty singletonowe, czyli mog -
ce wyst powa tylko w pojedynczym egzemplarzu.
Us uga geolokalizacji
Wyobra sobie aplikacj tworz c listy zdarze , które nazwiemy „spotkaniami”. Kontroler
umo liwia nam pobranie najpierw adresu IP bie cego u ytkownika, sprawdzenie z wykorzysta-
niem tego IP lokalizacji tego u ytkownika oraz wy wietlenie spotka w promieniu 50 kilome-
trów. Aktualnie ca y kod znajduje si w kontrolerze. Na razie jeszcze kontroler ten nie jest
zbyt d ugi — zawiera jedn metod i ca a klasa zajmuje jakie 50 wierszy kodu. Ale z czasem
dodamy wi cej kodu, aby na przyk ad móc wy wietla tylko ulubione spotkania u ytkownika
albo takie, w których u ytkownik bra udzia najcz ciej. Gdy po czy si te wszystkie infor-
macje i doda skomplikowane obliczenia maj ce na celu znalezienie najodpowiedniejszych
spotka dla danego u ytkownika, kod mo e rozrosn si do niebotycznych rozmiarów!
Ten prosty problem mo na rozwi za na kilka sposobów. Logik geokodowania mo na na razie
przenie do osobnej metody. B dzie to dobre tymczasowe posuni cie, ale lepiej my le przysz o-
logiki do us ug, do których nale y. Aktualnie nasz kod wygl da tak:
ciowo i przenie cz
use Geocoder\HttpAdapter\CurlHttpAdapter;
use Geocoder\Geocoder;
use Geocoder\Provider\FreeGeoIpProvider;
public function indexAction()
{
Narz dzia do geokodowania (oparte na doskona ej bibliotece geokodowania —
http://geocoder-
php.org/)
zainicjujemy przy u yciu nast puj cego kodu:
$adapter = new CurlHttpAdapter();
$geocoder = new Geocoder();
$geocoder->registerProviders(array(
new FreeGeoIpProvider($adapter),
));
14
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin