2011-01-01

Recension: Advanced PHP Programming

TitelAdvanced PHP Programming - A pratical guide to developing large-scale Web sites and applictions with PHP 5
FörfattareGeorge Schlossnagle
FörlagSams Publishing
ISBN0-672-32561-6
Publiceringsår2004
Antal sidor672
Vikt1030 g
Dimensioner178 x 228 x 38 mm
Pris292 kr (Bokus)


Boken Advanced PHP Programming gör skäl för sitt namn. Även om det kanske inte alltid är programmeringen i sig som är avancerad så behandlar boken avancerade saker såsom cachning och prestandaoptimering. Bokens ambition är att göra dig till PHP expert genom att visa hur man effektivt löser problem med PHP. Men det är inte främst problemlösning med PHP som boken handlar om, utan snarare lösning av de problem som problemlösning kan tänkas ha.

Boken är indelad i fem delar. Den första delen behandlar allmän PHP programmering inklusive kodningsstandard och objektorienterad programmering med designmönster (Design Patterns). Här finns även felhantering med undantag (exceptions), Model-View-Controller med Smarty-mallar och hur man implementerar kommandoradsapplikationer i PHP. Det blir även kort genomgång av enhetstestning (Unit Testing) med PHPUnit. Först delen avslutas med lite allmänt om utvecklingsmiljö, versionshantering och driftstagning. CVS används som versionshanteringssystem, med motiveringen att det är det vanligaste systemet, vilket det var när boken skrevs.

Nästa del ägnas åt cachning för förbättrad prestanda. Koncept som acceleratorer, omvänd proxy och datakompression tas upp, men också vikten av skapa cache-vänliga PHP applikationer. Olika sätt att cacha data gås igenom, allt från utdata buffring (output buffering) och mellanlagring på fil, till cookie-baserad cachning och cachning av hela eller delar av sidor.

Den tredje delen tar upp grundläggande saker (i betydelsen alla sajter använder det) som databashantering/-åtkomst och optimering, användarautentisering (inklusive Single Signon) samt sessionshantering. Den går också vidare med distribuerad miljö (kluster och distribuerad cache) samt databasskalning (inklusive Master/Slave-replikering). Det hela avslutas med Remote Procedure Call (RPC) via XML-RPC och SOAP.

Del fyra behandlar prestanda och profilering. Delen täcker in hela spektrumet från profilering av sidor och lastgenerering till profilering av PHP kod ner på individuella kodblock.

Den sista delen är den kanske tekniskt sätt mest avancerade. Den handlar om hur Zend motorn är uppbyggd och hur man kan utöka den med hjälp av tillägg. Det finns främst två anledningar till att man skulle vilja skapa ett tillägg, antingen utnyttja ett externt bibliotek eller prestandaförbättring (upp till 10 till 100 gånger beroende på tillämpning).




När jag läste kapitlet om designmönster fick jag en kort flashback till början av 90-talet, då C++ började bli populärt. I ett försök att hålla befintliga C böcker aktuella så utökades de med ett "objektorienterat" appendix som i princip bara räknade upp det som var nytt i C++. Lite samma känsla gav kapitlet, det finns där för att marknadsavdelningen krävde det. Författaren själv skriver i inledningen att endast 10 % av innehållet i boken är PHP 5 specifikt. Boken hade inte blivit sämre utan kapitlet som designmönster.

Självfallet så är det svårt att täcka in alla detaljer i en bok som spänner över så mycket. Men för de rena tekniska ämnena tjänar den som en bra introduktion. Det är lätt som läsare att förstå vikten av t. ex. cachning. Överlag tror jag att alla som sysslar med PHP programmering för mer än husbehov kan hitta något intressant i Advanced PHP Programming.

När det kommer till de mindre tekniska delarna (designmönster och enhetstestning) så är nyttan med boken inte lika given. Förhoppningsvis inser läsaren att ämnet är viktigt. Men bortsett från detta så innehåller boken mycket matnyttig information och är väl värd att läsas.

Inga kommentarer: