Jest to pierwszy artykuł z serii „W poszukiwaniu optymalnego środowiska programistycznego„, w którym postaram się odpowiedzieć na pytanie czy istnieje IDE, które nie przeszkadza w codziennej pracy programisty i upraszcza najczęściej wykonywane operacje. Przeprowadzane testy polegały na pracy przez około 5 dni roboczych, w wybranym programie, nad tym samym projektem w celu zmarginalizowania przyzwyczajenia do mojego obecnego zintegrowanego środowiska programistycznego – Eclipse. Projekt składał się z kilku tysięcy linii kodu. Komputer na jakim pracowałem to 3 GB RAM, Intel Core 2 Duo T5500 i Windows 7 (Opcjonalne Mac OS X ale to w kwestii zrzutów ekranu z PHP Storm).
PHP Storm – zintegrowane środowisko programistyczne
Czym ma być PHP Storm, najlepiej mówią twórcy:
PhpStorm is a lightweight and smart PHP IDE focused on developer productivity that deeply understands your code, provides smart code completion, quick navigation and on-the-fly error checking. It is always ready to help you shape your code, run unit-tests or provide visual debugging.
Przekładając na język Polski:
PHP Storm to lekkie i mądre IDE dla PHP koncentrujące się na produktywności i zrozumieniu pisanego kodu. Oferuje podpowiadanie składni, szybką nawigację i sprawdzenie w locie błędów składni. Umożliwia szybkie udostępnianie kodu, testowanie kodu i wizualne debugowanie.
W tym artylule postaram się sprawdzić ile jest w tym prawdy. Zapraszam do lektury.
Tworzenie nowego projektu w PHP Storm
Pierwszym krokiem zaraz po instalacji IDE, która przebiegła bezproblemowo, było stworzenie nowego projektu. Operacja ograniczyła się do wybrania katalogu z projektem i poczekania kilku sekund aż IDE za-indeksuje pliki. Już na tym etapie, byłem pod wrażeniem szybkości i łatwości tej operacji (w Eclipse stworzenie projektu wymagało skorzystania z wizzardu i kilku kliknięć dalej, lecz też nie można powiedzieć że było to skomplikowane ale na pewno indeksowanie plików jest bardziej czasochłonne).
Ciekawym elementem jest to że podczas indeksacji mogłem pracować w projekcie praktycznie bez przeszkód. Jedynymi ograniczeniami był brak możliwości podpowiadania składni i wyszukiwania (Naturalnie w Eclipse też można pracować w trakcie indeksacji jednak to bardziej przypomina szarpankę niż pracę – subiektywne odczucie)
Po zindeksowaniu projektu przez PHP Storm zużycie pamięci było o ~250 MB mniejsze niż w przypadku Eclipse. Eclipse na starcie projektu potrzebuje ok ~550MB. Jest to ogromny plus dla PHP Storm, tym bardziej że w trakcie kilku godzinnej pracy ta wartość wzrasta dla tych IDE o kolejne ~200MB.
Kolejnym ważnym elementem jest automatyczne wykrywanie systemu kontroli wersji w projekcie, ale to nie jest wszystko jeżeli chodzi o ten element. Integracja IDE z systemem kontroli wersji jest dużo bardziej dopracowana niż miałem okazję to spotkać w Eclipse. Na starcie dostajemy bardzo dopracowane moduły podglądu zmian. Selektywnego commit-owania. Automatycznie tworzenie change-logu i dużo dużo więcej.
Przygotowanie PHP Storm do pracy
Kolejnym krokiem jest zapoznanie się z skrótami klawiszowymi. Tutaj bez zaskoczeń, „klawiszo-logia” w PHP Storm pokrywa się z Eclipse w pięciu procentach (np. zapisz, otwórz itp.
). Na szczęście IDE umożliwia zmianę schematu klawiszy do wyboru mamy takie zestawy jak Eclipse, Emacs, NetBeans itp. Praktycznie po tej operacji poczułem się jak w domu.
Dodatkowo można skonfigurować IDE do pracy z bazą danych, GitHub’em, Debugerem. Standardem kwestii personalizacji IDE jest zachowania tabulatora, wklejania bloków kodu (inteligentne wcięcia), kolorystyki i setki innych elementów. Wszystko intuicyjnie i bezproblemowo.
Nawigacja w PHP Storm
Na tym etapie można dostrzec bardzo dopracowany mechanizm nawigacji po plikach w projekcie. Posiadamy takie elementy jak panel boczny z drzewem plików w projekcie ale również breadcrumbsy, które bardzo upraszczają nawigację. Praca na kilkunastu plikach rozrzuconych w modelu MVC i odszukiwanie ich w nawigatorze nie jest tak wygodna jak nawigacja w breadcrumbs, która trzyma kontekst aktywnie edytowanego pliku i szybko można przeskoczyć do pliku sąsiedniego.
Nie są to jedyne metody nawigacji, moimi ulubionymi sposobami, z których korzystam w codziennej pracy z Eclipse, a które też oferuje PHP Storm jest „przejdź do” typu, metody, pliku; przeskakiwania wstecz i wprzód do kolejnych edytowanych sekcji w kodzie oraz przeskakiwanie do definicji metody, klasy, funkcji poprzez najechanie na wykorzystywaną metodę kursorem myszki i naciśnięcie Ctrl+LMB lub podania nazwy w panelu pojawiającym się po naciśnięciu odpowiednich kombinacji klawiszy.
Programowanie w PHP Storm
Programowanie w PHP Storm jest jak najbardziej efektywne przez dużą ilość generatorów kodu i rewelacyjne szybkie podpowiadanie składni. Zwolennicy TDD poczują się jak w raju. Dla przykładu gdy tworzysz zmienną klasową i wciśniemy kombinację Ctrl+Alt+G wywołany zostanie panel z opcjami generowania kodu a wśród nich, generowanie setterów i getterów, implementacja metod interfejsu, nadpisywanie metod klasy głównej itp.
Dodatkowo odwołując się do zmiennej lub metody, która jeszcze nie istnieje PHP Storm pozwala ją bardzo szybko wygenerować.
Bardzo fajną rzeczą jest możliwość samodzielnego definiowania typu zmiennej w kodzie przez prosty komentarz /** @var $element Zend_Form_Element */, dzięki czemu możemy korzystać z podpowiadania składni w każdym miejscu:
Kolorowanie składni i rozpoznawanie błędów w PHP Storm
Teoretycznie prozaicznie prosty element jak kolorowanie składni, po którym nie spodziewałem się niczego nowego, zyskał nowe funkcjonalności poprawiające jakość i bezbłędność pisanego kodu. Teraz nie wykorzystywane nigdzie w kodzie zmienne są oznaczone kolorem szarym, nie zdeklarowane zmienne są podkreślone na czerwono a funkcja, która nie istnieje ma delikatnie żółte tło. Wychwytywanie błędów – natychmiastowe.
Ale to nie wszystkie nowości w inteligentnej składni. Tworząc zmienne i przypisując im kod SQL czy HTML, PHP Storm sam wykryje jaki jest to rodzaj składni i oprócz pokolorowania jej umożliwi wykorzystywanie w jej obrębie podpowiadania składni – co według mnie jest genialne.
Podsumowanie
Osobiście PHP Storm zrobił dla mnie bardzo dobre wrażenie. Szereg funkcji i niuansów poprawiających komfort i efektywność pracy jest powalająca. Nie spotkałem się jeszcze z tak dopracowanym i kompletnym IDE.
- szybkość działania IDE po kilkugodzinnej pracy jest bardzo dobra
- nawigacja po kodzie jest bardzo szybka i sprawna
- inteligentne podpowiadanie i kolorowanie składni
- gdy piszemy aplikację w PHP 5.3 i wykorzystujemy przestrzenie nazw, tutaj często podpowiadanie kodu nie zadziała – trzeba deklarować ręcznie typy zmiennych.
- ilość jednocześnie otwartych zakładek z plikami jest ograniczona do ok 20 kart
- w jednym oknie edytora możemy mieć otwarty tylko jeden projekt, otwarcie kilku projektów to otwarcie nowego okna edytora
Zachęcam wszystkich programistów do przeprowadzenia prostego eksperymentu i samemu odpowiedzenia sobie czy zmiana IDE na PHP Storm jest warta świeczki.
P.S. W powyższym artykule przedstawiłem tylko część funkcjonalności, z których korzystałem w trakcie pracy i nie wątpię że kruczków i smaczków wspomagających codzienną pracę jest dużo więcej.











