Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHPStorm + debugowanie + symfony2
webmaniak
post 30.11.2013, 10:00:54
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Witam,
tak jak pisałem w innym temacie chciałbym zakupić PHPStrom. Póki co postanowiłem go pobrać i spróbować dostosować do swoich potrzeb, by po zakupie mieć już wszystko gotowe smile.gif Mam jednak problem z poprawną konfiguracją debugowania dla symfony2, choć nic innego nie próbowałem debugować, więc pewnie problemem jest brak ogólnej wiedzy jak dostosować to IDE do debugowania ;/ Czytam dokumentację(http://www.jetbrains.com/phpstorm/webhelp/creating-and-editing-run-debug-configurations.html), ale nie zupełnie jest ona dla mnie jasna ;/ Przede wszystkim albo robię coś źle albo mam inną wersję bo nie mam możliwości wyboru typu konfiguracji(local, remote) jak to pokazane w manualu. Mógłby ktoś po krótce opisać jak należy po kolei skonfigurować PHPStrom pod kątem debugowania - również w symfony2 jeśli jest jakaś różnica? Z góry dziękuję za pomoc smile.gif

Pomoże ktoś/podpowie coś? tyle osób pisze że PHPStorm jest najlepszy, nikt z tych nie używa debugowania smile.gif?


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
RiE
post 30.11.2013, 11:13:55
Post #2





Grupa: Zarejestrowani
Postów: 97
Pomógł: 45
Dołączył: 5.05.2010

Ostrzeżenie: (0%)
-----


Nie napisałeś czy zależy Ci na local czy remote debug
Pierwsze krok jaki powinieneś poczynić to File -> Settings -> PHP -> Servers. Kliknąć zielony plus i dodać hosta, przy okazji w sekcji Debug możesz ustawić jakieś niestandardowe ustawienia, ale do pierwszego uruchomienia debugera nie są potrzebne tam żadne zmiany.
Później dajesz Edit Configuration -> zielony plus i wybierasz co konkretnie chcesz debugować. Dokumentacja, którą podałeś pokazuje nieco starszą wersję PHP Storm (mniej możliwości debugowania).

Polecam filmy na youtube jeżeli potrzebujesz krok po korku

Debugging PHP with PhpStorm solidna prezentacja 57min z oficjalnego kanału jetBrainsTV
Advanced Debugging in PhpStorm - PhpStorm Video Tutorial ten sam kanał, bardziej o możliwościach debugowania niż samej konfiguracji.

Setup xDebug with PHPStorm przystępnie w 5 min pokazane jak skonfigurować xDebuga


Go to the top of the page
+Quote Post
webmaniak
post 30.11.2013, 21:38:47
Post #3





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Ok, już się biorę za przeglądnięcie. Chodzi mi o lokalne debugowanie. Dzięki smile.gif

Jestem zmuszony prosić jednak o dalsza pomoc, wyjaśnienie. W File -> Settings -> PHP -> Servers ustawiłem dodałem jako name testowy, a jako host: testowy.local. Oczywiście jest to host zdefiniowany w pliku hosts i konfiguracji xamppa. I to jest pokazane w tym filmiku 5-cio minutowym. Dalej @RiE napisałeś żeby w Edit Configuration wybrać to co chce debugować. Tego najbardziej nie rozumiem. Co tu wybierać? W tym filmiku 5-cio minutowym nie ma edycji tych konfiguracji. Po prostu autor ustawia brakpointy i odpala. Ja nie mam niestety aktywnego przycisku run(jako skrótu), jeśli użyję Debug to odpala się przeglądarka Google chrome, mam tam zainstalowany dodatek dla PHPStorm, pokazuje się komunikat: "JetBrains IDE Support" debuguję tę kartę. W PHPStorm mam natomiast komunikat: Connected to JetBrains Chrome Extension, nic więcej
Co jest zatem nie tak? Proszę o pomoc.

Ten post edytował webmaniak 30.11.2013, 21:42:30


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
RiE
post 1.12.2013, 11:00:02
Post #4





Grupa: Zarejestrowani
Postów: 97
Pomógł: 45
Dołączył: 5.05.2010

Ostrzeżenie: (0%)
-----


Postaram się opisać krok po kroku, ale zaczne od artykułu który może być pomocny, co prawda dotyczy on PHPStorm 2.0, ale opisuje kiedy używać remote debug itp.
Configuring PHP debugging in PhpStorm 2.0
PHPStorm umożliwia debugowanie wielu rzeczy i to miałem na myśli pisząc o wybraniu odpowiedniej opcji do debugowania. Można debugować całą aplikację, pojedyńczy skrypt, PHPUnit, skrypty JS, itd. Od razu przyznam się że nie sprawdzałem wszystkich tych opcji, bo nie miałem jeszcze potrzeby.

Artykuł wyżej opisuje 3 możliwości debugowania, wtedy tylko tyle było, teraz jest więcej, ale chyba te 3 sposoby są najcześniej wykorzystywane
1. Listener (uniwersalny)
2. Remote Debug (dla każdego projektu trzeba robić nową konfigurację)
3. Web Application Debug (dla każdego projektu trzeba robić nową konfigurację)

Ja opiszę tutaj pierwszą możliwość

Na początku trzeba zainstalować xDebug, to pominę bo myślę że jest 'oczywistą oczywistością'
Następnie w pliku php.ini:
  1. [xDebug]
  2. zend_extension = ""// Ścieżka do pliku .dll
  3. xdebug.profiler_append = 0
  4. #Ustawienia profilera
  5. xdebug.profiler_enable_trigger = 1
  6. xdebug.profiler_output_dir = "" // Ścieżka gdzie mają być gromadzone pliki
  7. xdebug.profiler_output_name = "cachegrind.out.%t-%s"
  8.  
  9. xdebug.remote_host=localhost
  10. xdebug.remote_port=9000
  11. xdebug.idekey=PHPSTORM // Bardzo ważny jest tutaj ten klucz
  12. xdebug.remote_mode=req
  13. xdebug.remote_handler=dbgp
  14. xdebug.remote_enable=1


Następny krok to bookmarklets. Z oficjalnej strony(http://www.jetbrains.com/phpstorm/marklets/index.html) możemy wygenerować funkcje, które umożliwią nam start debugera, istnieją też dodatki z tego co wiem na Chrome i Firefox. Nie ważne z czego skorzystamy, najważniejsze jest żeby IDE Key był identyczny z tym z pliku .ini

Teraz File -> Settings -> PHP -> Server i wypełniamy name, host i upewniamy się że zaznaczony jest nasz Debuger z rozwijanej listy.

Kolejny etap to włączenie nasłuchiwania, ikona przypominająca telefon, obok ikony 'Debug'.
Robimy breakpointa.
Przechodzimy do przeglądarki, włączamy nasz plugin, który generuje IDE Key, odświeżamy stronę iii... powiniśmy zostać automatycznie przeniesieni do aplikacji PHPStorm, który pokaże okienko do debugowania.

Ważna rzecz: Używając Listenera nie ma potrzeby dawać Edit Configuration i wybierać opcji debugowania, więc nie myśl że dodatkowo trzeba jeszcze coś wypełniać. To co wyżej napisałem powinno umożliwić debugowanie aplikacji.

Może jeszcze to się przydać:
Zero-configuration Web Application Debugging with Xdebug and PhpStorm

Go to the top of the page
+Quote Post
webmaniak
post 1.12.2013, 12:11:33
Post #5





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Ha! Teraz działa. Tak jak pisałeś, istnieją dodatki do chrome i firefox które wspomagają uruchomienie debugowania. Z takiego rozszerzenia korzystałem wczoraj dla Chrome. No i ten dodatek jakoś szwankuje. Dla firefox-a zainstalowałem ten dodatek ale w ogóle nie jest widoczny przycisk ;/ Skorzystałem zatem z tego linku http://www.jetbrains.com/phpstorm/marklets/index.html i przeciągnąłem wygenerowane funkcje Start, Stop i Debug this page - aczkolwiek Start mi nie działa(w IDE nic się nie dzieje). Natomiast działa funkcja debug this page, gdy ją uruchomię w PHPStorm rozpoczyna się debugowanie - czyli wszystko działa tak jak tego chciałem.
Jeśli chodzi zaś o te rozszerzenia - to w chrome próbuje używać portu 63342 - jaki powinien być poprawny?
Druga sprawa to czemu Start debug - czyli ta funkcja wygenerowana w ogóle nie odpowiada? to samo ze stop debug - zero reakcji. W php.ini ustawiłem dokładnie takie parametry jak podałeś.
Reasumując, dzięki wielkie za wszystkie linki i opis, są one bardzo pomocne, nadal jest coś nie tak, nie wiem czy ja coś robię źle, czy to wina przeglądarki, czy czegoś innego? Dlatego będę wdzięczny za odpowiedź na pytania wyżej smile.gif


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post
RiE
post 1.12.2013, 17:08:11
Post #6





Grupa: Zarejestrowani
Postów: 97
Pomógł: 45
Dołączył: 5.05.2010

Ostrzeżenie: (0%)
-----


Cytat
Jeśli chodzi zaś o te rozszerzenia - to w chrome próbuje używać portu 63342 - jaki powinien być poprawny?

Przyznam sie szczerze że nie korzystam z wtyczki do przeglądarek, tylko ze skryptozakładek(bookmarklets), xDebug domyślnie nasłuchuje na porcie 9000 więc chyba taki powinien być.

Funkcja Start Debug dodaje ciastko o wartości odpowiadającej kluczowi, więc to dziwne że nie działa skoro Debug this page wykorzystuje ten sam mechanizm.
Pierwsza sprawa to sprawdziłbym czy aby na pewno po kliknięciu Start Debug, przeglądarka ma cookie o nazwie XDEBUG_SESSION i wartości zgodnej z pliku ini. Domyślnie PHPSTORM. Upewni się że żadna wtyczka nie blokuje tego ciastka. Często zdarza się że wtyczki, które zapobiegają śledzeniu usuwają pliki cookie.

Ciężko mi coś doradzić, bo w przypadku Listenera nie ma za dużo ustawień, a co za tym idzie za dużo szans popełnienia błędu.
Go to the top of the page
+Quote Post
webmaniak
post 6.12.2013, 21:41:25
Post #7





Grupa: Zarejestrowani
Postów: 371
Pomógł: 30
Dołączył: 14.04.2010

Ostrzeżenie: (0%)
-----


Dziekuję po raz kolejny smile.gif Chwilke nie mogłem się tym zając na poważnie, tyle co sprawdziłem te dwie rzeczy co napisałeś. Tak, istnieje takie cookie XDEBUG_SESSION, wartość to PHPSTORM. Czy jakaś wtyczka nie blokuje tego ciastka? Masz na myśli wtyczki google chrome? Jeśli tak to mam dwie wtyczki: Dokumenty Goodle i JetBrains IDE Support - w chwili sprawdzania kilka dni temu. Zatem nie mam pojęcia co jest nie tak. Rozwiązałem powód w inny sposób - instalacja xdebug_helper smile.gif
Jeszcze tylko jedno pytanie - bo celowo w temacie dałem + symfony2. Czy konfiguracja pod symfony2 dla debugowania powinna się jakoś różnić od innych? Pewnie nie, no ale skoro jesteśmy przy temacie to spytam smile.gif

Ten post edytował webmaniak 6.12.2013, 22:18:46


--------------------
Pomogłem - kliknij , wprowadziłem w błąd - poinformuj niżej lub na pm.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 2.05.2025 - 04:19