Najładniejsze szablony nie sprzedadzą się same, kiedy klient oczekuje, że serwis będzie robił coś więcej niż prezentacja statycznej treści. Tutaj potrzebne są języki server-side, a ja akurat specjalizuję się w PHP (co nie przeszkadza mi swobodnie poruszać się w Perlu, Pythonie i w miarę sprawnie radzić sobie z kodem Ruby — nie uważam PHP za najlepszy język i o jego wadach już kiedyś pisałem).
Konfiguracja środowiska
Na potrzeby rozwoju aplikacji mamy uruchomione własne mini-środowisko, klasyczny LAMP, z PHP5 na pokładzie. Większość konfiguracji to wierna kopia ustawień maszyn produkcyjnych, na których aplikacje są wdrażane, jest jednak kilka kwestii technicznych, o których warto wspomnieć.
error_reporting
- zawsze ustawiony na najwyższy poziom, z
E_STRICT
włącznie, PHP wybacza za dużo, żeby pozwolić sobie na zignorowanie choćby jednego notice register_globals
- bezwzględnie wyłączony, poleganie na tym mechanizmie to proszenie się o kłopoty (wystarczy powiedzieć, że spory odsetek ataków na serwisy wynika właśnie ze stosowania automatycznie rejestrowanych zmiennych), a zastosowanie w ten sposób uzyskanych zmiennych w środowisku obiektowym — nikłe
magic_quotes_gpc
- cóż — chciałoby się napisać, że to zło, ale jeszcze przez jakiś czas aplikacja, przy której pracujemy, będzie wymagać tego ustawienia — brak wsparcia dla preparowanych zapytań w pierwszych wersjach sprawił, że teraz jeszcze trudniej byłoby je zaimplementować — w najbliższym czasie do projektu dołączy kod, który usuwa automatyczne cytowanie, jeśli jest aktywne, a następnie cytuje ponownie zawartość tablic
$_GET
,$_POST
,$_REQUEST
i$_COOKIE
Biblioteki
- PEAR
- niewątpliwie, najobszerniejsza biblioteka rozszerzeń językowych dla PHP, paczki Mail i Mail_Mime stanowią podstawową część większości z naszych aplikacji
- CakePHP
- szkielet do szybkiego prototypowania i wdrażania aplikacji o średnim i małym poziomie skomplikowania — pozwala minimalnym nakładem kodu uzyskać maksimum funkcjonalności, a przy tym posiada wygodne narzędzia do testowania aplikacji
- Smarty
- jeden z najwygodniejszych i najłatwiej rozszerzalnych silników szablonowych dla PHP, zbudowany na bazie wtyczek i pozwalający na wykonywanie praktycznie dowolnych operacji na przekazanych przez silnik danych — jednocześnie chroni wnętrze aplikacji przed złośliwymi zmianami w szablonach i optymalizuje czas wykonania kodu przez utrzymywanie cache szablonów w postaci skompilowanej do kodu PHP
- class.jabber.php
- od dłuższego czasu nierozwijany, ale wciąż jeden z najbardziej wszechstronnych interfejs do sieci Jabber, używany przeze mnie do wysyłania automatycznych powiadomień z poziomu serwisów
- Magpie RSS
- bardzo wygodna klasa do parsowania wszelakiej maści kanałów informacyjnych, wbrew nazwie, świetnie sobie radzi z dokumentami Atom
Bezpieczeństwo kodu
- ionCube PHP Encoder
- jeden z wiodących na rynku pakietów do nieodwracalnego szyfrowania kodu, tańszy od konkurencyjnego rozwiązania Zend Guard i oferujący praktycznie identyczną funkcjonalność, a przy tym powszechnie dostępny na polskich serwerach
- eAccelerator
- darmowy, ale znacznie uboższy w funkcje kuzyn komercyjnych narzędzi do zabezpieczania kodu, wywodzący się z bazy kodowej popularnego przodka — Turck mmCache, jedyne dostępne narzędzie w przypadku serwerów home.pl
A czego wy używacie w codziennej pracy? O edytorach postaram się podyskutować następnym razem, więc póki co, zostańmy przy języku.
Technorati Tags: php, encoder, accelerator, template, smarty, jabber, pear, cakephp, rss, tools