Pátým rokem studuji IT a nikdy jsem nenapsal jediný článek s jakýmkoliv kouskem kódu. To musím napravit. Pojďme se proto podívat, jak snadno a šupem debugovat PHP kód.
Představte si, že vyvíjíte něco hezkého v PHP, třeba nějaké hezké rozšíření pro Nette Framework. Představte si, že vám to vůbec nefunguje, echo vás už nebaví a možnosti ladění v Nette vám nestačí. Chtěli byste ve vašem oblíbeném IDE krokovat. Jde to? Jde. Stačí si zprovoznit Xdebug.
Řekněme, že vašim oblíbeným IDE je NetBeans a používáte xampp. Nejprve vytvořte nějaký PHP soubor, naplňte ho následujícím obsahem a přistupte k němu z prohlížeče. (Všimněte si prosím sofistikovanosti mého historicky prvního uveřejněného kódu.)
<?php phpinfo(); ?>
Zkopírujte veškerý obsah stránky, která se vám zobrazila, a vložte jej sem. Potvrďte. Dále postupujte podle pokynů – stáhněte si danou verzi Xdebug a umístěte ji podle doporučení. Následně v nějakém editoru otevřete soubor php.ini a vložte do něj (třeba na konec) následující (první řádek se může lišit dle skutečného umístění a verze (a pokud už tam je, tak ho musíte nahradit)):
zend_extension = C:\xampp\php\ext\php_xdebug-2.2.3-5.5-vc11.dll xdebug.profiler_enable = 1 xdebug.profiler_enable_trigger = 0 xdebug.profiler_output_dir = "C:\xampp\tmp" xdebug.profiler_output_name = "cachegrind.out.%t-%s" xdebug.remote_enable = on xdebug.remote_handler = "dbgp" xdebug.remote_host = localhost xdebug.remote_port = 9000
Restartujte Apache. V NetBeans si v nastavení projektu nebo v horní části zvolte webový prohlížeč (mně se líbí Embedded), umístěte někam breakpoint a spusťte debugování. Vše by mělo fungovat. Pokud ne, zkuste to vypnout a znovu zapnout, případně chvíli googlit. Chcete-li debugger nastavit (např. vypnout zastavování na prvním řádku kódu), udělat tak můžete v nastavení NetBeans a záložce PHP -> Debugging. A pak už se můžete s chutí pustit do programování. :)