[amazon 067232704X thumbnail] Suosittelen lämpimästi tätä kirjaa kokeneille PHP-ohjelmoijille, jotka haluavat tutustua PHP:n sielunelämään hieman pintaa syvemmältä. Myös C:n osaaminen on tarpeen.

Kirja tutustuttaa lukijan niihin eri tapoihin, joilla C-koodi voi olla vuorovaikutuksessa PHP-koodin kanssa. Tyypillisesti tämä tapahtuu PHP-laajennuksessa, joka tarjoaa konekielisiä funktioita PHP-koodin kutsuttavaksi. PHP-tulkin voi myös upottaa omaan sovellukseensa skriptikieleksi.

Itselleni eräs mielenkiintoisimpia osuuksia oli kuvaus siitä, miten PHP käsittelee muuttujien arvoja eri tilanteissa (by-value ja by-reference), eli milloin muuttujan arvo kopioituu duplikaatiksi ja milloin siihen vain viitataan uudella viittauksella. Tämä on tärkeää, jos haluaa koodata tehokasta PHP-koodia.

PHP API ja Zend Engine ovat yhteensä aika laaja alue, mutta tämä kirja onnistuu ansiokkaasti käymään läpi tärkeimmät asiat. Omien laajennusfunktioiden tekemisen lisäksi se selvittää miten C-koodissa voidaan käsitellä PHP:n globaaleja muuttujia, resursseja, streameja ja niin edelleen.

OOP-ohjelmoinnin osuus on lyhyt mutta ytimekäs. Kirja käy läpi PHP4:n (Zend Engine 1) ja PHP5:n (Zend Engine 2) luokat ja objektit ja kertoo miten ne eroavat toisistaan. Se neuvoo myös, miten laajennukset voivat julkaista omia luokkia ja metodeja sekä käsitellä niille parametreinä annettuja objekteja.

Tähän kirjaan ei ole otettu mukaan Zend Extension -rajapintaa, jota tarvitaan vielä matalamman tason laajennusten tekemiseen (esim. APC-bytecode-välimuisti). Se on myös jo hieman iäkäs (2006), mutta tietääkseni ainoa olemassaoleva kirja, joka käsittelee PHP5-laajennuksia.

Jos osaat C:tä, tilaa kirja saman tien Amazonista ja vie PHP-osaamisesi seuraavalle tasolle! ;-)