Do kiosków niedawno trafił już ósmy numer pisma. Postaramy się ocenić jego zawartość i przybliżyć czytelnikowi tematykę poruszaną w tym wydaniu.
Swego czasu, na oficjalnym forum PHP Solutions pojawił się wątek, w którym redakcja pytała czytelników o to, jakie artykuły (na jaki temat) powinny ukazać się w kolejnych edycjach pisma. Cieszy nas fakt, iż w aktualnym wydaniu znalazło się kilka artykułów o wspomnianej tam tematyce. Widać redakcja na poważnie podchodzi do wymagań jakie stawiają im czytelnicy.
Głównym tematem numeru ósmego są frameworki czyli szkielety działania aplikacji, które zapewniają podstawowe mechanizmy i mogą być wypełniane właściwą treścią programu. Paweł Kozłowski w swoim artykule na ich temat pokazuje przykładowy kod takiego szkieletu. Korzysta przy tym z
MVC (Model-View-Controller) który jest jednym z wielu modnych ostatnimi czasy
wzorców projektowych (ang. Design patterns). Na dołączonym do pisma CD znajdują się oczywiście wszystkie tworzone tam skrypty. Dodatkowo dołączono także źródła popularnych frameworków takich jak: Mojavi, Seagull, WACT czy Prado (który został zwycięzcą ostatniego
Zend Contest
Częstym problemem przy pisaniu takiego frameworka, czy nawet normalnej strony z newsami jest sprawa autoryzacji (uprawnień użytkowników do różnych części serwisu). Powstało wiele bibliotek wspomagających programistę w tym temacie. Jedną z lepszych jest phpGACL opierająca swój schemat działania na dynamicznym tworzeniu listy ACL. Artykuł po kolei przedstawia czytelnikowi kolejne zalety biblioteki oraz na przykładach pokazuje jak ów możliwości wykorzystać. Zawiłe określenia związane z użyciem biblioteki jak np. ARO, AXO, ACL, UID są prosto i przejrzyście wytłumaczone, dzięki czemu nawet początkujący programista poradzi sobie z ich zrozumieniem.
Podczas pisania swoich aplikacji, popełniamy jednak wiele błędów. Często odnalezienie ich zajmuje więcej czasu niż samo napisanie kodu. Artykuł "Debugowanie aplikacji w PHP" pokazuje przykładowe sposoby na ułatwienie sobie wyszukiwania błędów. Efektem prac jest klasa generująca log z pracy skryptu, dzięki któremu szybko dojdziemy do miejsc w których popełniliśmy błędy. Szkoda tylko, że autor dokładniej nie opisał dodanych w PHP5
wyjątków (ang. Exceptions) które bardzo ułatwiają obsługę błędów w aplikacji.
W pewnym momencie dochodzi do sytuacji, w której pracujemy równocześnie nad wieloma projektami (niektóre piszemy na zlecenie). Zaczynamy się gubić w pracy. Nie wiemy co już zrobiliśmy a czego nie, nie znamy postępu prac. Często dochodzi do tego jeszcze praca w kilka osób co bardzo komplikuje zarządzanie. Takie aplikacje jak dotProject czy phpCollab starają się pomóc nam w ww. sytuacjach. Dzięki ich funkcjonalności możemy łatwo zarządzać prowadzonymi projektami, przydzielać pracowników do różnych zadań, kontrolować postęp prac itd. Marcin Kawalerowicz w swoim artykule na temat dotProjecta prosto i przejrzyście opisuje proces instalowania go, tworzenia nowych projektów, zarządzania nimi. Ponadto opisuje w jaki sposób użytkownik może tworzyć własne pluginy, rozszerzające zakres możliwości dotProjecta.
W aktualnym numerze przeczytamy także o czymś, co wielu początkujących w dziedzinie PHP może bardzo zdziwić: tworzenie aplikacji okienkowych w PHP. Umożliwia to biblioteka PHP-GTK. W artykule Jacka Niewęgłowskiego przeczytamy jak z jej pomocą stworzyć frontend do narzędzia Wake-On-Lan (zdalnie włączającego komputery w sieci). Oczywiście jest to tylko przykład. Taki frontend można stworzyć dla dowolnej aplikacji konsolowej.
W artykule nie obeszło się jednak wg mnie bez błędów. Autor chyba nie myślał na poważnie o optymalizacji przez co często zdarza mu się stosowanie pętli foreach() zamiast używać funkcji typu array_search() czy in_array(). Dziwi mnie także stosowanie "global" w funkcjach. Problem dostępności obiektów wewnątrz funkcji dało się rozwiązać w inny, lepszy sposób. Mimo tych usterek, artykuł jest godny polecenia. Sam zresztą z niego wiele wyniosłem, a także stworzyłem swoją pierwszą aplikację w PHP-GTK.
W numerze znalazło się także wiele na temat zarabiania w sieci. Testy oraz opisy różnych sklepów internetowych, programów partnerskich itp.
Na dołączonym CD po raz pierwszy nie znajdziemy minidystrybucji linuksa "PHP SolutionsLive". Sadzę, iż był to dobry krok ze strony redakcji. Dzięki temu na CD znajduje się więcej przydanych narzędzi, skryptów i artykułów.
Podsumowując, PHP Solutions to bardzo dobre pismo zarówno dla początkujących jak i zaawansowanych programistów a w numerze ósmym każdy znajdzie coś dla siebie. Warto wspomnieć, że tematyka frameworków będzie kontynuowana także w następnych numerach.