Eclipse & PHP - Source Level Debugging
11.04.2008 | Siim
Hiljuti mõtlesin, et uuriks vahepeal, kui kaugele on jõudnud PHP’s source level debugging. Viimane kord kui uurisin, siis ei olnud asi veel nii kiiresti arenenud ja viimased versioonid ei olnud kättesaadavad. Seekord oli aga üllatus suur. Kui varem oli Eclipse‘is PHP arenduse jaoks kasutusel PHPEclipse, siis nüüd ei ole vaja seda enam kasutada. Eclipse’le on välja lastud PHP Development Tools (PDT), mis kasutab rohkem Eclipse’i olemasolevaid komponente. PDT aluseks on võetud PHP IDE. Üks parim omadus, mis mulle PDT juures meeldib, on PHP lähtekoodi tasemel debugimise võimalus. Selleks on sisse ehitatud Zend Debugger ja XDebug Debugger.
PDT installimine
Kõigepealt tuleb tõmmata PDT plugin. Kui masinas ei ole eelnevalt installitud Eclipse‘i, siis kõige lihtsam moodus on tõmmata PDT All-in-One pakk, mis sisaldab nii Eclipse’i kui ka PDT’d. Leiab selle siit.
Olemasoleva Eclipse’i korral tuleb kõigepealt PHPEclipse deaktiveerida (juhul muidugi, kui see on installeeritud). Seda saab teha Eclipse’i menüüst Help > Software Updates > Manage Configuration alt. Järgmiseks tuleb tõmmata PDT. Selleks tuleb jälle minna menüüsse Help > Software Updates > Find/Install ja avanevast aknast valida valik Search for new features to install. Kuna seal nimekirjas ei ole infot selle kohta, kust tõmmata PDT, siis kõigepealt tuleb vajalik info sinna lisada. Selleks tuleb avanevas aknas vajutada nuppu New Remote Site ning sisestada nimeks näiteks PHP Development Tools (PDT) ja URLiks http://download.eclipse.org/tools/pdt/updates/. Vajalikke pakettide tõmbamiseks tuleb ära märkida PHP Development Tool (PDT), Callisto Discovery Site ja The Eclipse Project Update ja vajutada Finish. Kui küsitakse mirrorite kohta, siis võib nõustuda vaikimisi pakutavatega. Kui siiamaani on kõik hästi läinud, siis pakutakse sulle nimekiri võimalikest omadustest, mida saab installida. Et kõik ilusti tööle hakkaks, on vaja:
- Märkida ära Callisto Discovery Site > Web and J2EE Development > Web Standard Tools (WST) ja vajutada Select required nuppu paremal.
- Märkida ära PHP Development Tool (PDT) > PDT > PDT Feature
Järgmiseks vajutada Finish ja järgida ekraanil olevaid juhiseid. Sellega on PDT install lõppenud. Detailsema juhendi leiab sellelt lehelt ning video installimise kohta leiab siit.
Zend Debuggeri installimine
Zend Debuggeri installimine käib samamoodi menüüst Help > Software Updates > Find/Install nagu ma eelmises lõigus kirjutasin. Nimeks panna näiteks samuti PHP Development Tools (PDT) ning URLiks http://downloads.zend.com/pdt. Pakutavatest valikutest valida ainult Zend Debugger Feature.
Kohalike scriptide debuggimiseks sellest peaks piisama. Tavaliselt käib arendus aga läbi Apache’i serveri, seega tuleb Zend Debugger laiendus installida ka veebiserverile. Selleks tuleb tõmmata PHP extension, mille leiab siit. Windowsi kasutajad peaksid valima versiooni, mis on mõeldud cygwin_nt-i386 jaoks. Sealt tuleb kopeerida vastavalt oma PHP versioonile ZendDebugger.dll PHP extensionite kataloogi. Oma php.ini faili tuleb lisada järgnevad read:
[Zend] zend_extension_ts=<full path to ZendDebugger.dll>zend_debugger.allow_hosts=<comma separated ip_addresses> zend_debugger.expose_remotely=always
Kui kasutatud on DBG Debuggerit, siis see tuleb ka deaktiveerida. Veebiserveri juurkataloogi tuleb lisada ka Zend Debuggeriga kaasa tulnud dummy.php fail. Peale seda tuleb teha veebiserverile restart. Kui kõik läks hästi, siis phpinfo()’s peab Zend Debugger olema nähtav.
Detailsema paigaldusjuhendi leiab siit.
PDT konfigureerimine
Kui Eclipse’s on avatud PHP projekt, siis tuleb konfigureerida ka debugimise keskkond. Kõigepealt tuleb valida uus Debug Configuration tüübiga PHP Web Page. Avanevalt lehelt debuggeriks valida Zend Debugger ja samuti valida server, kus peal debugimist teostada. Kui valik on tühi, siis lisada uus server. File‘i alt valida fail, millega debuggimist alustatakse. Enamuste veebide jaoks on selleks index.php fail. Kui on märgitud linnuke Break at First Line, siis programmi esimese täidetava rea juures tehakse break. URLi alt valida õige url index.php jaoks. Kui automaatselt õiget ei genereerita, siis sisestada käsitsi. Advanced saki alt tuleks märkida ka linnuke Open in Browser ja valida Debug All Pages, kui tahtekase kõigil lehtedel debuggimine aktiveerida.
Sellega peaks olema minimaalne konfiguratsioon valmis ja võib alustada debuggimisega

15.04.2008 kell 22:47
Huvitaval kombel ei mõjutanud selle dummy.php puudumine suurt midagi… Samas kõik sain kenasti tööle.
16.04.2008 kell 01:15
Ma ei jõudnud ilma dummyta proovida, seega ei oska kommenteerida selle vajalikust/ebavajalikust. Aga ma suutsin ta vahepeal proovimise käigus erinevate versioonidega nii kooma ajada, et lõpuks ei töötanud enam midagi, aga õnneks sain lõpuks ikka korda.
Samuti olen täheldanud, et mõnikord tahab Apache selle peale pillid kotti panna, aga see juhtub pigem siis, kui asju ebakorrektsemalt teha