1 Przykłady zewnętrznych bibliotek do PHP Laboratorium z Baz Danych Łukasz Zubkowicz
2 Czym jest szablon? ➲ jest to wzór rozwiązania ➲ jasno wyznacza cel ➲ przeznaczony jest do wielokrotnego wykorzystywania ➲ zazwyczaj jest łatwy w modyfikacji
3 Co daje wykorzystywanie szablonów programistom PHP? ➲ pozwala oddzielić prezentację (układ, treść, wygląd) od logiki aplikacji ➲ ułatwia panowanie nad kodem ➲ przyspiesza powstawanie aplikacji ➲ zmniejsza jej docelowy rozmiar
4 Smarty – praktyczna realizacja idei szablonów ➲ http://smarty.php.net/ ➲ obiektowa biblioteka napisana w PHP ➲ wydana na licencji LGPL (darmowa, dająca dosyć dużo swobody w użytkowaniu) ➲ posiada dużo większe możliwości niż tylko obsługa szablonów
5 Dlaczego Smarty? ➲ implementacja jest bardzo szybka (cache, kompilacja szablonu) ➲ posiada użyteczną funkcjonalność (np. modyfikatory zmiennych, funkcje szablonowe, instrukcje sterujące) ➲ łatwo się ją rozszerza (plug-iny) ➲ obsługuje błędy w szablonach ➲ posiada wewnętrzny debugger
6 Schemat działania Aplikacja SzablonSmarty Wynik
7 Używanie Smarty ➲ dołączamy bibliotekę za pomocą instrukcji require_once() ➲ wykonujemy operacje będące celem działania aplikacji ➲ tworzymy obiekt klasy Smarty ➲ podajemy mu ścieżki do katalogów z szablonami, config'ami i cache ➲ wiążemy z nim obliczone zmienne ➲ prosimy obiekt o wyświetlenie wyniku
8 Przykład użycia
9
10 Modyfikatory zmiennych ➲ pozwalają formatować zawartość wypisywanych zmiennych ➲ pełnią wiele użytecznych funkcji typowych dla prezentacji danych ➲ niektóre dają dostęp do informacji nie przekazanych obiektowi (np. do daty) ➲ można je ze sobą łączyć ➲ do bogatego zbioru modyfikatorów bardzo łatwo dodać swój (przez system plug-in'ów)
11 Przykład użycia
12
13 Funkcje szablonowe ➲ dzielimy je na wyświetlające jakąś treść i wykonujące pewne działania ➲ skracają czas poświęcany na powtarzanie czynności ➲ zwiększają czytelność, np. przez podział szablonu na części i dołączanie ich do głównego wzorca funkcją {include file=”...”}
14 Przykład użycia
15
16
17 Instrukcje sterujące ➲ stosowane w celu „inteligentnego” kształtowania prezentacji ➲ nie powinny być nadużywane (np. przez przenoszenie do szablonów części logiki aplikacji) ➲ najczęściej używane to pętla {section}, {foreach} oraz instrukcja warunkowa {if...}...{elsif...}...{else}...{/fi}
18 Przykład użycia
19
20 Cache ➲ jego użycie wymaga pojęcia świadomych działań ➲ po włączeniu wynik przetworzenia szablonu jest zapisywany do pliku ➲ sami decydujemy czy użyć zapisanej wersji, czy parsować dane ➲ możliwe jest trzymanie kilku wersji przetworzonego szablonu
21 Przykład użycia
22 Plug-in'y ➲ rozszerzają bibliotekę, aby potrafiła sprostać specyficznym wymaganiom ➲ są to po prostu skrypty PHP, które zachowują pewne konwencje nazw funkcji, plików itp. ➲ ładowanie odbywa się automatycznie (on-demand) z katalogu plugins/ ➲ w razie braku wtyczki biblioteka zgłasza błąd
23 Przykład użycia
24 Co dalej? ➲ dokumentacja biblioteki i opis jej instalacji są dostępne na stronie http://www.smarty.net/ ➲ istnieje w sieci wiele tutoriali wprowadzających do Smarty ➲ wydano już (także w Polsce) parę pozycji książkowych traktujących o używaniu biblioteki Smarty
25 PEAR – PHP Extension and Application Repository ➲ http://pear.php.net/ ➲ jest to sieciowe repozytorium kodu i rozszerzeń do PHP ➲ zawiera setki pakietów podzielonych na kategorie, zawierających skrypty i komponenty których ciągle się używa ➲ skupia wokół siebie społeczność propagującą innowacyjność i dobry styl kodowania w PHP
26 Niektóre użyteczne pakiety ➲ HTML_AJAX – wspomaga nie tylko od strony PHP, ale także JavaScript ➲ Mail – m.in. interfejs do funkcji mail(), demona sendmail, protokołu SMTP ➲ I18N, I18Nv2 – pakiety te są pomocne przy internacjonalizacji serwisu ➲ File – ułatwia dostęp do plików, wspomaga odczytywanie z plików CSV ➲ Image_3D – pozwala tworzyć grafikę trójwymiarową w PHP (!)
27 Jak zainstalować pakiet? ➲ z nowszymi wersjami PHP dostarczany jest obsługiwany z wiersza poleceń menedżer pakietów ➲ przykłady jego użycia i lista obecnie dostępnych pakietów dostępne są na stronach społeczności PEAR
28 Źródła: ➲ http://www.smarty.net/ ➲ przykłady do biblioteki Smarty zostały zaczerpnięte z Crash Course i dokumentacji, które znajdują się na w.w. stronie ➲ http://pear.php.net/