Jak použít xdebug → krokování
- redhead
- Člen | 1313
NetBeans by měli jet sami o sobě, pokud sis nedal nějaký nestandardní port nebo něco. Možná budeš muset nastavit výchozí prohlížeč v nastavení a specifikovat index.php (kde začne debug session) v nastavení projektu. Pak stačí Debug → Debug Main Project (projekt musí být logický nastaven jako Main; pravým na projekt → Set as Main Project), měl by se otevřít prohlížeč (nový tab) s url na specifikovaný index.php s jedním parametrem v url o startování debug session. NetBeans by se měli chytit už sami (samozřejmě si někam dej breakpoint, ve výchozím nastavení ale myslím zastaví na první řádce index.php). Pak už můžeš chodit na jakékoliv jiné stránky v projektu (session nekončí ukončením skriptu). Krokovat můžeš tlačítkama nahoře co se objeví, nebo kl. zkratkama (já si je přenastavil)
Editoval redhead (4. 8. 2010 22:42)
- newPOPE
- Člen | 648
Gaudentius napsal(a):
ale nikde se to nijak neprojevi
- Najskor by som si skontroloval ze mam xdebug korektne nahodeny v PHP, phpinfo(); uz som to par ludom rozbehaval a vacsinou to skapalo presne na tomto
- pokial mas xampp tak este vypinam nejaky zend optimizer ci ako sa to vola… (tusim mi to dost casto padalo…)
- inak NBeans by defaultne malo zastavit na 1om riadku applikacie
- ic
- Člen | 430
Mě NetBeans spouštělo aplikaci do přehledu složek a ‚document_root‘ jsem si musel nakliknout ručně… z toho důvodu jsem musel přenést ty get parametry s kterýma prohlížeč startuje z výpisu složek na spuštěnou aplikaci a pak vše jelo správně.
Případně ještě tady byl ten pomocníček pro nalezení správné verze xdebug http://derickrethans.nl/…-wizard.html jestli náhodou není problém ve verzi
- Panda
- Člen | 569
Vůbec není potřeba nastavovat nějaký index.php. Mnohem pohodlnější je nastavit si NetBeans tak, aby se o prohlížeč vůbec nestaral a session pouštět přímo z webu. Napsal jsem na to drobnou pomůcku: https://github.com/…Debug-Helper. Stačí stáhnout a zaregistrovat do Nette debug baru:
\Nette\Debug::addPanel(new \PandaWeb\XDebugHelper());
// resp. Debug::addPanel(new XDebugHelper()); v PHP 5.2,
// pro PHP 5.2 stačí zakomentovat blok s namespace a use v XDebugHelper.php
Použití je pak následující:
- Nastavení Netbeans tak, aby neotevíral okno prohlížeče:
- Spustit debuggování v Netbeans, aby začal naslouchat pro příchozí spojení.
- Spustit session tlačítkem na Nette debug baru:
- Provést požadavek, tzn. refresh/klepnutí na AJAXový odkaz.
Nedoporučuji nechávat Xdebug session v prohlížeči zapnutou stále, protože pak se Xdebug snaží připojit k debuggovacímu klientu a pokud neběží, tak se vám zbytečně prodlužuje načítání stránky o 1s.
Podobný doplněk mohu udělat i pro profilování, ale tam je toho nastavování v php.ini trochu víc a vyznat se třeba ve WebGrindu může být pro začátečníky složité.
- Panda
- Člen | 569
Nenapsal jsi svůj operační systém, ale na Windows by na to měl mít plugin Notepad++, na Linuxu by se jistě našel nějaký DBGp plugin pro VIM.