XDebug použití u prezenterů
- Attanon
- Člen | 25
Ahoj,
dnes jsem si nainstaloval na server Xdebug, zprovoznil jsem ho přez ssh tunel. V apachi běží, Phpstorm vidí připojení taky. Když si dám breakpoint na www/index.php tak mě to zastaví, a projede. Což je super.
Akorát vzniká problém u presenterů například. Tam mi to nechce zastavit. Máte s tím nějakou zkušenost, popřípadně radu jak to rozjet? či to nejde?
S Xdebugem jsem si začal hrát teprve dneska, tak jsem v tom celkem novej.
Děkuji za každou odpověd.
- artemevsin
- Člen | 61
Tak tak je to mappingem. S tím jsem se natrápil i na localu. A nastavuje
se v Run->Edit configurations. Tam klikneš na ty tři tečky u Server a
v otevřeném okně zaškrtneš Use path mappings.
Jinak dělá to kvůli routování, resp. všeobecně rewrite v .htaccess
- Attanon
- Člen | 25
artemevsin napsal(a):
Tak tak je to mappingem. S tím jsem se natrápil i na localu. A nastavuje se v Run->Edit configurations. Tam klikneš na ty tři tečky u Server a v otevřeném okně zaškrtneš Use path mappings.
Jinak dělá to kvůli routování, resp. všeobecně rewrite v .htaccess
Díky, už se mi to povedlo rozjet. Mapping jsem tam nějakej základní měl a předpokládal jsem, že když hodím mapping na složku app tak mi to bude fungovat. Nefungovalo. Pak jsem hodil ještě jeden řádek na složku Backend a rozjelo se mi to v pohodě.
Ještě jedna otázka. Vzhledem k tomu, že jsem rozjel Xdebug na serveru, tak mě to debuguje veškeré požadavky (například na phpmyadmina:)), dá se to nějak nastavit v Xdebugu, aby mě to debugovalo pouze jednu doménu?
- artemevsin
- Člen | 61
Tak jedna z možnosti je vypnout Run->Break at first line in PHP scripts
a pak ti to bude odchytávat jen breakpointy, které sis nastavil.
Jinak to záleží na tom, jak debuguješ. Tady vývojář z JetBrains vysvětluje způsoby, jakými se
spouští debugger. V tvém případě asi připadá v úvahu používat
cookies. Vygeneruješ si zde záložky do prohlížeče a těmi pak
spouštíš/zastavuješ debugger. A vzhledem k tomu, že se jedná
o sušenku, tak je to vázané na jednu doménu.
- Attanon
- Člen | 25
artemevsin napsal(a):
Tak jedna z možnosti je vypnout Run->Break at first line in PHP scripts a pak ti to bude odchytávat jen breakpointy, které sis nastavil.
Jinak to záleží na tom, jak debuguješ. Tady vývojář z JetBrains vysvětluje způsoby, jakými se spouští debugger. V tvém případě asi připadá v úvahu používat cookies. Vygeneruješ si zde záložky do prohlížeče a těmi pak spouštíš/zastavuješ debugger. A vzhledem k tomu, že se jedná o sušenku, tak je to vázané na jednu doménu.
Možnost
Break at first line
jsem měl vyplou. Ale i tak, pokud se provedl nějaký HTTP request na jakoukoliv stránku tak se to buď seklo, nebo se mě přesměrovalo na PHPStormu.
Jinak díky za pomoc. Povedlo se mi to rozjet pomocí sušenek a rozšíření v chromu https://github.com/…r-for-chrome, které hází sušenku do prohlížeče když si to chci zapnout. Jsem velice rád, že jsem se do toho dneska pustil, neboť mě to usnadní docela dost práce, když projíždím nějaké části kodu, které nedávají smysl a potřebuji si je projít.
- artemevsin
- Člen | 61
Tak se ještě zkus podívat do php.ini v sekci xdebug je xdebug.remote_autostart, který spouští xdebug při každém requestu bez ohledu na to, jestli je v GET/POST/COOKIE nějaká „spouštěcí“ proměnná. Zkus ten autostart vypnout, mělo by to pomoct.
xdebug.remote_autostart
Type: boolean, Default value: 0
Normally you need to use a specific HTTP GET/POST variable to start remote debugging (see Remote Debugging). When this setting is set to 1, Xdebug will always attempt to start a remote debugging session and try to connect to a client, even if the GET/POST/COOKIE variable was not present.
- Attanon
- Člen | 25
artemevsin napsal(a):
Tak se ještě zkus podívat do php.ini v sekci xdebug je xdebug.remote_autostart, který spouští xdebug při každém requestu bez ohledu na to, jestli je v GET/POST/COOKIE nějaká „spouštěcí“ proměnná. Zkus ten autostart vypnout, mělo by to pomoct.
xdebug.remote_autostart
Type: boolean, Default value: 0
Normally you need to use a specific HTTP GET/POST variable to start remote debugging (see Remote Debugging). When this setting is set to 1, Xdebug will always attempt to start a remote debugging session and try to connect to a client, even if the GET/POST/COOKIE variable was not present.
Měl jsem zapnutý ten autostart, protože jsem to našel jako první variantu. Mě se pak nedařilo to moc rozjet na sušenky, ale nakonec se mi to podařilo a od té doby mám i autostart vypnutý.