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: , , , , , , , , ,