W swojej kilkuletniej pracy z językiem PHP używałem całej maści różnych edytorów kodu. Zaczynałem od podstaw – notatnik. Potem chyba FrontPage (ale to głównie HTML). Przez lata próbowałem oficjalnych, nie oficjalnych, kombajnowych i ściśle edycyjnych. phpEd z NuSphere był ze mną długo. Potem fascynacja Eclipsem (kilka różnych wtyczek) i ostatnio NetBeans, cały czas gdzieś w tle Scite jako zastępnik notatnika. Potem odkryłem PHPStorm i jestem z nim już prawie rok. Jak dla mnie edytor idealny.

Wady

Zacznę może trochę na odwrót recenzję – wymienię wady tego edytora.

  1. Brak wsparcia dla wielu projektów otwartych jednocześnie
    Nie da się porównywać plików z 2 projektów – co jest przydatne na przykład przy pracy nad dwoma wersjami aplikacji lub jej starszą wersją (przygotowywanie poprawek).
  2. Brak możliwości wypięcia edytora z głównego okna
    Przeszkadza przy pracy na dwóch monitorach, niby można rozciągnąć program, ale wtedy wszelkie okna wyskakują na łączeniu monitorów.
  3. … i tyle.

Nie przeszkadza mi nawet to, że jest napisany w języku Java. Działa w miarę szybko na wszystkich maszynach, na których go instalowałem – od netbooka, przez macbooka po desktopy – zachowuje się przyzwoicie, jak już skończy skanować pliki.

Obrazek przedstawia g?ówne okno programu.

Ten post byłby zbyt długi, gdybym chciał opisać wszystkie funkcje, które przekonały mnie do tego edytora. Skupię się więc tylko na kilku. Recenzowaną przeze mnie wersją jest Early Access Preview wersji 2.0. Taka beta lub bardziej nawet RC – aplikacja prawie ukończona. Skróty klawiszowe używane w recenzji pochodzą z profilu Eclipse – stare nawyki umierają długo 😉 .

„Osom bar”

Obrazek przedstawia pasek adresu edytowanego pliku

Pasek nawigacyjny jest rozwiązaniem często pomijanym. Jeden rzut oka pozwala stwierdzenie, gdzie się znajduję w strukturze projektu. Jest to o tyle przydatne, że czasami – szczególnie w aplikacjach MVC – jest kilkanaście plików o takiej samej nazwie – widok index.html jest bardzo dobrym przykładem – przy pomocy tego paska nawigacyjnego można też zmieniać położenie – wystarczy kliknąć folder lub plik, by wybrać element znajdujący się na tym poziomie. Niby jest też gdzie indziej, ale tu wykonanie jest wzorowe.

Debugger, który działa

Plus ponad rozwiązaniami typu Eclipse lub NetBeans: mam wrażenie, że PHPStorm priorytetowo traktuje rozwiązania oparte na Xdebug, a nie tak jak wszyscy na Zend Debug. Poza tym działa prosto z paczki – nawet w wersji 1.0 nie było z tym wielkich problemów – w wersji 2.0 jest to jeszcze ułatwione.

Bardzo podoba mi się konfiguracja pułapek w kodzie – dostępna pod skrótem CTRL+SHIFT+F8. Możliwe jest logowanie w konsoli wyrażeń szacowanych w trakcie przechodzenia przez daną pułapkę oraz ustawianie zależności – dana pułapka jest aktywna tylko w przypadku gdy ścieżka przechodzi przez inną pułapkę. Idealne do różnego rodzajów rozgałęzień w kodzie.

Subversion

Cudowne wsparcie dla zestawów zmian. Wystarczy utworzyć nowy zestaw, edytować pliki i wysłać zestaw jako cały. Używane jest natywne rozwiązanie serwera więc wszystkie inne narzędzia – takie jak TortoiseSVN – widzą zestawy tak, jak je zdefiniowaliśmy. Przygotowanie poprawek jest znacznie ułatwione.

Dodatkowo integracja zmian pomiędzy gałęziami w repozytorium sprowadza się do przejścia na zakładkę „Repositotry”, wybrania prawym klawiszem myszy opcji „Integrate to branch” i wybrania gałęzi. Kod z kopi roboczej na dysku zostanie porównany z wersją w wybranej gałęzi i zostanie przygotowany odpowiedni zestaw plików. Często pracuję na kilku gałęziach i ta funkcja oszczędza mi codziennie sporo czasu.

Bardziej „Osom bar”

CTRL+SHIFT+T. „Enter class name”. Wyszukiwanie klas. Cudo. Przeszukuje kod PHP oraz JavaScript. Pozwala używać *. Działa niesamowicie szybko – przynajmniej w porównaniu z Eclipse. Tego trzeba po prostu spróbować.

Sprawę kolorków na tym ekranie oraz następnym wyjaśnię w jednym z następnych punktów.

Najbardziej „Osom bar”

CTRL+SHIFT+R. „Enter file name”. Najlepszy wynalazek od czasu krojonego chleba. Lepszy nawet od krojonego chleba. Typowe zastosowanie: ścieżka do widoku w aplikacjach opartych na Zend Frameworku wygląda na ogół tak:

application / module / view / scripts / controller / view.html

W tym pasku wystarczy wpisać:

module / controller / view

i plik znaleziony. Nawet lepiej wystarczy wpisać:

mod/contr/index

Wystarczy wpisać kilka znaków każdej części, by program odnalazł szukany plik. Rewelacja. Oszczędzone 30 min czasu dziennie. Co najmniej. Dodatkowo przeskakiwanie pomiędzy tymi dwoma funkcjami powoduje przeniesienie wpisanego tekstu – jeżeli pomylą się okna, wystarczy wcisnąć na nowo skrót i wpisany tekst pozostaje. Kolejne minuty w skali dnia. Jest jeszcze 3 wersja „osom bara” – pozwala wpisywać nazwy metod i funkcji z każdego obsługiwanego języka. Jej działanie jest zbliżone do pozostałych dwóch, ale w projektach z setkami funkcji działa wolniej.

Inspektor gadget

Możliwości konfiguracji różnego rodzaju pomocników i podpowiedzi dotyczących tworzonego kodu są ogromne. Mimo zaznaczenia prawie wszystkich opcji nie zauważyłem praktycznie żadnej zmiany w wydajności aplikacji! Podpowiedzi wyświetlane są na marginesie, przez co nie przeszkadzają, ale przydają się w okresie optymalizacji aplikacji. Lista jest bardzo długa, ale wszystkie są dokładnie opisane, więc wystarczy poświęcić trochę czasu na zapoznanie się z nią, by dostosować kontrolę do swoich potrzeb.

Bardzo przydatna jest też możliwości ograniczania inspekcji dla każdego pliku osobno. Wystarczy kliknąć główkę Hektora w pasku statusu, by wyświetlić opcje. Używając suwaków można wyłączyć część lub wszystkie inspekcje. Można też ograniczyć aplikację tak by powstrzymała się przed wykonywaniem zadań w tle – przydatne na laptopach – zaznaczając „Power Save Mode”.

Koduj ze stylem

Jedna spacja po nawiasie otwierającym definicję funkcji? Czy jedna po nawiasie? A zamykający? A klamry? Przed czy po? Nie ważne. Można to ustawić w zakładce sekcji „Code Style” w opcjach programu. Wydaje mi się, że można ustawić każdy, nawet najbardziej wymyślny sposób formatowania kodu. Tak jak inspekcje, te ustawienia nie wpływają na wydajność edytora.

Over the rainbow

Możliwość definiowania własnych kolorów dla różnych plików pasujących do odpowiedniego wyrażenia regularnego wydaje się jakimś zbędnym bajerem. Ale wystarczy pokolorować jednym kolorem jeden moduł, innym kolorem drugi moduł, jeszcze innym Zend Framework, a na żółto bibliotekę do szablonów i we wszystkich narzędziach, na zakładkach, na liście plików po prawej, na wynikach wyszukiwania – dosłownie wszędzie gdzie jest to potrzebne, pliki podświetlają się wybranym kolorem. Widać wszystko jak na dłoni. No i te same zakresy można wybierać potem na liście plików po prawej oraz w zakresie wyszukiwania.

Podsumowanie

Można by tak opisywać jeszcze przez kilkanaście akapitów. Wiem, że nie wszystkie wymienione tu funkcje są całkowitą nowością, ale ich realizacja jest wzorowa.

Producent co jakiś czas udostępnia program w promocji dla domowego, ale komercyjnego użycia – ja kupiłem program pod koniec wakacji za około 50EUR. Pod koniec roku program ponownie był w promocji. Wart każdej złotówki (albo euro).

Ocena: 9.5/10 – za te 2 punkty na początku.

26 stycznia 2011 21:22 Grzegorz Drozd Jeden komentarz Komentuj Kategorie: Narz?dzia, PHP, PHPStorm, Praca

Wysłany przez:
murwazy
18 marca 2011 09:18

dobry art, dowiedzialem sie kilku nowych rzeczy, dzieki:)

Bądź uprzejma(y).

Możesz używać następujących tagów HTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Twój adres e-mail nie będzie wyświetlony.

Twój adres e-mail nie będzie przekazany nikomu.

Wszystkie komentarze są moderowane.