Egy kis bevezető, aztán jön egy részletesebb leírás, hogyan is lehet belőni a címben vázolt környezetet.
A PDT megjelenése elég sok változást hozott a PHP fejlesztők életében. Az első verzió ugyan csak arra volt jó, hogy Eclipse környezetben is lehetett “normálisan” PHP kódot írni. Az igazi áttörés akkor történt, amikor megjelent az első olyan verzió, ami már teljesen támogatta a Zend Debugger-es remote debugging-ot. (Böngészőből indítható debug-ot.) Eddig ezt csak a – fizetős Zend Platform részévé váló, majd onnan kikerülő Zend Debugger-rel és a szintén fizetős – Zend Development Studio keretén belül lehetett megoldani. Úgy tűnik ez most már lassan a múlt homályába vész és végre lesz egy teljes értékű, ingyenes PHP debug megoldás a jól működő ingyenes PHP IDE (PDT) mellé… illetve úgy tűnik már van is!
Az első XDebug-ot támogató PDT-vel az volt a baj, hogy valami miatt lefogta az egész processzort és eléggé hektikusan működött: néha nem indult el a debug, néha ehhez újra kellett indítani az egész Eclipse-et. Emiatt hanyagoltam is az XDebug-ot, helyette bevetettem az időközben megint ingyenesen elérhető Zend Debugger-t.
Pár napja láttam, hogy a PDT-ből kiadták az 1.0.3-as verziót és nem olyan régen megjelent az XDebug 2.0.3-as verziója is. Hirtelen ötlettől vezérelve be is frissítettem őket (biztos nem véltlen, hogy 3-as végződik mindkét verzió, ugye…) és meglepődve tapasztaltam, hogy az XDebug procit felzabáló hajlama eltűnt, a PDT szépen tudja indítani a debug session-öket, minden flottul működik. Na ezen felbuzdulva gyorsan leírtam, hogyan is jutottam el ebbe az idilli állapotba:
Alapfeltevés: Van egy Apache alá installált PHP, fut az Eclipse-ben a PDT. Mindkét előfeltételre rengeteg doksival szolgál a Googel keresője.
- Fel kell rakni az XDebug bővítményt PHP alá. Ennek egyik legegyszerűbb módja (ha Linux vagy MacOSX alatt vagyunk), hogy a PECL csomagkezelővel szépen befordíttatjuk. Erről van egy szép doksi az XDebug oldalán is, de röviden ezt kell begépelni a konzolban:
pecl install xdebug
Win alatt van bináris verzió, amit csak be kell másolni a PHP könyvtárába.
- A php.ini-ben be kell olvastatni a lefordított xdebug modult és be kell kapcsolni a remote debug fícsört:
zend_extension=/Library/PHP5/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so xdebug.remote_enable=1
Windows alatt is ez kell, csak .dll a fájl kiterjesztése.
- Eclipse-ben be kell állítani egy debug konfigurációt, ehhez kell, hogy legyen egy PHP projekt, amire majd tudunk hivatkozni.


- A bal fölül levő “New launch configuration”-ra
kell kattintani, majd a megjelenő ablakban a Server fülön beállítani a következőket:
- Server Debugger: XDebug
- File: belapozni egy PHP projekten belül egy php fájlt, ami az indulási oldala lesz ennek az egész indítási konfignak
- Auto Generate: ellenőrizni, hogy jó url-t rakott-e össze a PDT, ha nem, akkor kiszedni a pipát és kézzel javítani!
- Advanced fülön:
- Start Debug from: beírni ide is azt az url-t, amit az előző fülön, ha vlami miatt mégsem az jelenne meg.
- Pipát rakj a “Continue Debug from This Page” elé, így a PDT nem bontja a kapcsolatot az XDebug-gal a megadott url letöltése után.
- Common fül:
- Itt csak azt érdemes bepipálni, hogy a most összerakott launch config szerepljen-e a debug fav.-ok között.
Ezek után mehet egy Apply és ha minden jó, akkor a Debug gombra kattintva a PDT elindítja az Eclipse-ben beállított böngészőt a megadott url-lel (kiegészítve az XDebug session indításával).
Helyezz el breakpointokat és láss csodát, a következő oldal letöltésekor (a böngészőben lehet nyomkodni a linkeket, tölteni az újabb oldalakat) a PDT életre fog kelni, ha a program futása eléri a beállított breakpointot.
Innentől kezdve a PDT debug perspektívájában lehet nézelődni: látszódik a hívási verem, az elérhető változók, sőt a változók értékei módosíthatóak is!
Mindenkinek jó szórakozást hozzá!


