Przejdź do profilu na Facebook.com

PhpStorm #2 - Konfiguracja i poznanie pierwszych funkcjonalności w PhpStorm

PhpStorm #2 - Konfiguracja i poznanie pierwszych funkcjonalności w PhpStorm

Ścieżka nawigacyjna

Konfiguracja i poznanie pierwszych funkcjonalności w PhpStorm

Treść główna

Krzysztof
Trzos
2015-10-11
Kategoria: Web developing

W poprzednim wpisie wstępnie przedstawiłem PhpStorma i dlaczego postanowiłem stworzyć o nim serię artykułów. Dziś natomiast chciałbym napisać Wam co nieco o jego możliwościach konfiguracyjnych oraz pierwszych, najbardziej charakterystycznych funkcjonalnościach, jakie w nim odkryłem.

Odpalamy...

Rakieta - odpalamy - Lift offPierwsze o czym muszę wspomnieć, to szybkość PhpStorma. Pomimo że jest to naprawdę potężne IDE z masą różnych możliwości, ładuje się ekstremalnie szybko, nawet z otwartym projektem na starcie. Dla porównania, od momentu kliknięcia w ikonkę skrótu na pulpicie NetBeans (z funkcjonalnościami tylko dla PHP) na moim komputerze odpala się 12 sekund, a PhpStorm 8 sekund (tj. w sumie o 33% szybciej). W skład tego czasu wchodzi również ładowanie się ostatnio włączonego projektu, a dodatkowo w tym czase PhpStorm sprawdza jeszcze w jakiś sposób repozytorium SVN, na którym dany projekt się znajduje. Myślę, że głównym problemem NetBeansa jest jego skanowanie projektu przy starcie programu.

Dla jeszcze jednego porównania, z ciekawości, przeprowadziłem pewien test. Przeszukałem cały mój projekt (składający się z około 16000 plików) w poszukiwaniu tekstu “require”. Wyniki wyszły dość ciekawie. W przypadku, kiedy NetBeans szukał wielokrotności tego słowa przez ponad pół minuty (za drugim razem o połowę mniej), to PhpStorm zrobił to w 5 sekund w między czasie pytając mnie czy ma szukać dalej, skoro znalazł już około 1000 wystąpień (kliknąłem TAK). Od razu zaznaczam, że zarówno PhpStorm, jak i NetBeans, są najbardziej aktualne w swoich wersjach.

Cóż więc można powiedzieć… różnica jest wyraźna. Ale jest ona widoczna nie tylko w liczbach. Widać ją również podczas korzystania z wyszukiwania klas, nazw plików lub autouzupełniania kodu. W tych przypadkach wyniki są niemalże natychmiastowe. Śmiało więc tutaj możemy nawiązać do nazwy edytora i powiedzieć, że “idzie jak burza” :).

Tak jeszcze w gwoli uzupełnienia, poniżej podaję specyfikację techniczną mojego PC:

8GB RAM
procesor Intel i5-4430
dysk SSD 128GB (na system operacyjny)
dysk 1TB (na inne oprogramowanie, m.in. NetBeans i PhpStorm)
Windows 10 x64 Pro

...i konfigurujemy!

Zanim zacząłem dobrze korzystać ze wspomnianego IDE od JetBrains, zaglądnąłem do okna “ustawienia”. Chciałem dowiedzieć się jakie rzeczy mogę w nim zmodyfikować, a ponadto, potrzebowałem odpowiednio dopasować pod siebie kolorystykę i czcionkę. Ogrom opcji profilowania edytora niezmiernie pozytywnie mnie zaskoczył. Pomimo tego, że NetBeans dostarczał równie podobne, to ich ilość ma się nijak do tych z PhpStorm. Wymienię może kilka tych najważniejszych:

  • konfiguracja formatowania kodu (niezwykle szczegółowa, dla wielu składni językowych) i kolorowania składni na wiele sposobów (jak tylko nam się podoba);
  • konfiguracja szablonu edytora;
  • ustawienia GitHub, kontroli wersji (SubVersion, CVS, Mercurial, Perforce), systemów testujących, systemu zarządzania bibliotekami i wielu innych narzędzi powiązanych z PHP / JavaScript / CSS jak np. Vagrant, czy Compass;
  • OGROMNA ilość możliwości przypisywania każdej z funkcjonalności PhpStorm do skrótów klawiszowych;
  • możliwość powiązania z frameworkami i CMSami napisanymi w PHP, jak np. Symfony, Drupal, WordPress;
  • konfiguracja bieżącej inspekcji kodu (potężna baza możliwych do popełnienia przez nas błędów, w której to decydujemy jakie z nich mają być w ogóle brane pod uwage i zaznaczane w edytorze w razie popełnienia; tak dla porównania, w NetBeans lista tych błędów dla języka JavaScript składa się z 10, a w PhpStorm… nie jestem w stanie na szybko ich zliczyć :D);
  • wiele, wiele innych.

Bardzo dobrym pomysłem ze strony JetBrains jest możliwość przypisywania ustawień edytora do aktualnie otwartego projektu. W taki sposób każdy programista uczestniczący w projekcie będzie mógł mieć podobne lub te same ustawienia. Dodatkowo, firmy IT mogą odgórnie nakładać standardy pisania kodu. Zapewne nie jeden z nas napotkał się z takim problemem, w którym to, na przykład, inna osoba do wcięć używała tabulacji zamiast spacji (lub odwrotnie), albo w ogóle innego kodowania znaków niż UTF-8 (a takie przygody w NetBeans się niestety zdarzają). Przeformatowanie całego projektu było potem dość mocno uciążliwe. Jest to i tak dość mały przykład.

Do projektu zapisywane są również inne ustawienia edytora czy konfiguracje z przeróżnymi narzędziami. Tak więc, jeśli wrzucimy pliki konfiguracyjne danego projektu na zewnętrzne repozytorium lub chmurę, to tych ustawień nie utracimy nawet jeśli spali nam się komputer :). Ponadto, pliki z ustawieniami mogą stanowić też swojego rodzaju bazę wiedzy. Kiedy nasz potencjalny współpracownik otworzy projekt, będzie mógł korzystać ze stworzonych już przez nas wcześniej gotowych szablonów znacząco pomagających w pracy.

PluginTrzeba jeszcze wspomnieć, że to, co  PhpStorm oferuje zaraz po instalacji, nie jest końcem jego możliwości. Istnieje jeszcze multum pluginów oferujących przeróżne funkcjonalności i możliwości integracji. Z przykładowych, które “na szybko” zauważyłem:

  • pluginy integrujące z frameworkami Yi, Laravel, AngularJS;
  • pluginy zwiększające ilości opcji w związku z Gitem;
  • pluginy generujący plik *.zip z określonymi przez użytkownika zmianami lub z całym projektem;
  • wsparcie dla Bootstrap 3;
  • dodatkowe wsparcie dla języków Haskell, Stylus i wielu innych;
  • dodatkowe wsparcie dla NodeJS;
  • słowniki innych języków do modułu sprawdzania poprawności (np. niemiecki, bułgarski);
  • a nawet także, plugin który odtwarza dźwięk w momencie kiedy coś pojawi się w konsoli :).

W tym przypadku NetBeans także wypada dość nieźle, gdyż tych pluginów ma dość pokaźną ilość. Ewentualna różnica względem PhpStorma jest taka, że większość z nich jest nieaktualna (tzn. ostatnia aktualizacja była przeprowadzana przynajmniej rok temu).

Poznajemy pierwsze funkcjonalności

Nadszedł w końcu czas na przedstawienie niektórych możliwości PhpStorma. W tym akurat wpisie chciałbym jeszcze raz odnieść się do szybkości. Jednakże, nie do samego edytora, a do pracy w nim. Autorzy utworzyli kilka bardzo fajnych rozwiązań, które powodują, że programowanie staje się nie tylko mniej czasochłonne, ale i znacząco wygodniejsze. Spośród wszystkich, na chwilę obecną, chciałbym wymienić trzy:

  • skróty klawiszowe;
  • live templates (pol. “żywe szablony”);
  • postfix completion (pol. “uzupełnianie postfiksowe”).

Skróty klawiszowe

Prawda jest taka, że do czasu korzystania z produktu firmy JetBrains nie zdawałem sobie sprawy jak często potrzebna mi była myszka komputerowa przy innych edytorach (chociażby np. w NetBeans, aby dostać się do odpowiedniego działu w opcjach projektu albo pliku z zakładki “Projects”). Natomiast, dzięki skrótom klawiszowym dostępnym w PhpStorm, gdyby nie konieczność klikania gryzoniem w przeglądarce, to odstawiałbym go za każdym razem na bok. Przy pomocy klawiatury mogę się błyskawicznie dostać w każde miejsce konfiguracyjne i zakładkę edytora, do każdego pliku danego projektu, bądź do każdej klasy PHP. Do wszystkich miejsc tego edytora podłączona jest wyszukiwarka, która bardzo szybko znajduje odpowiednią frazę (ta główna, szukająca niemalże wszystko i wszędzie, znajduje się po dwukrotnym kliknięciu klawisza SHIFT).

Poniżej jeszcze przedstawiam parę obrazków GIF ze prezentacją niektórych skrótów klawiszowych, przedstawiając Wam tylko jakiś ich ułamek:

CTRL+SHIFT+Backspace

Skrót CTRL+SHIFT+Backspace

CTRL+Spacja

Skrót CTRL+Spacja

CTRL+N oraz CTRL+SHIFT+N

Skrót Ctrl+N / Ctrl+Shift+N

CTRL+W

Skrót klawiszowy Ctrl+W

Powyższa lista skrótów z obrazkami (których jest o wiele więcej) pochodzi ze strony, której link podam poniżej. Polecam przejrzeć cały artykuł, gdyż przedstawia nie tylko skróty klawiszowe, ale i niektóre z bardzo ciekawych, podstawowych funkcjonalności.

http://www.sitepoint.com/phpstorm-top-productivity-hacks-shortcuts

Dla porównania z NetBans. To IDE również posiada dość długą listę funkcjonalności możliwych do podpięcia pod skróty klawiszowe, lecz nie wydaje się to być aż tak intuicyjne jak w produkcie od JetBrains. Ponadto, w praktyce, działa to zupełnie inaczej i gorzej.

Żywe szablony

Funkcjonalność ta służy do tworzenia własnych lub napisanych już przez autorów edytora szablonów kodu, w których definiujemy określoną treść stałą oraz miejsca wprowadzania danych (np. nazw zmiennych, liczb, łańcuchów znaków). Przy ich wyborze w kodzie za pomocą autouzupełniania PhpStorm wszystko ładnie i automatycznie nam wygeneruje prosząc o wpisywania, po kolei, odpowiednich danych.

Weźmy pod wzgląd pewien przypadek. Chcemy do kodu HTML wprowadzić kod PHP zawierający funkcję tłumaczącą nam jakiś łańcuch znaków. Poniżej jeden z przykładów użyć:

<?= t('This is some content'); ?>

Z uwagi na to, że będziemy z niej korzystać bardzo często w swoim całym projekcie, warto byłoby skorzystać właśnie z żywych szablonów. W taki oto sposób możemy zdefiniować sobie jeden z nich nadając przykładową nazwę “?=” o zawartości następującej:

<?= $VAR$ ?>$END$

Dzięki takiemu zabiegowi, jeśli wpiszemy w kodzie HTML te dwa znaki (?=), to okienko kontekstowe podpowiedzi składni wygenerowane przez PhpStorm od razu przedstawi nam tą dyrektywę. W momencie jej wyboru, automatycznie zostanie wygenerowany kod. Dziać się to będzie mniej więcej na takiej zasadzie:

Live templates(źródło: Adam Paterson GitHub)

 Więcej na ten temat możecie znaleźć tutaj:

Live Templates (Snippets) in PhpStorm

Dodam jeszcze, że NetBeans również posiada funkcję szablonów. Różnicą jest tylko to, że w przeciwieństwie do PhpStorma, możemy w nim jeden szablon przyporządkować do tylko i wyłącznie jednego języka.

Uzupełnianie postfiksowe

Ta funkcjonalność, która tak naprawdę została wprowadzona w najnowszym PhpStorm 9, jest bardzo podobna do wcześniej wspomnianej, lecz działa nieco inaczej. Z jej funkcjonalności korzysta się na wcześniej utworzonych już danych w kodzie, a dokładniej: zmiennych, łańcuchów znaków, bądź liczb. Aby móc opisać Wam jak one działają, przedstawię może ich funkcjonowanie na pewnym przykładzie.

Powiedzmy, że mamy zmienną $variable, która przechowują wartość typu boolean. Na jej podstawie chcemy utworzyć warunek, w którym to jeśli $variable będzie zwracać wartość TRUE, to wykona jakiś następny kod w obrębie tego warunku. Jak to najszybciej zrobić? Otóż napisać nazwę zmiennej, dodać kropkę, wpisać if i kliknąć enter. Jeśli nadal nie potraficie sobie tego wyobrazić, przedstawiam działanie tego całego schematu w formie graficznej:

 Postfix completion / uzupełnienia postfiksowe

(źródło: https://www.jetbrains.com/phpstorm/whatsnew)

Istnieje oczywiście mnóstwo innych operacji, jakie możemy dokonać przy pomocy uzupełniania postfiksowego. Niestety jednak, jesteśmy ograniczeni tylko do tych, które zaprogramowali twórcy PhpStorma. Nie ma możliwości tworzenia swoich wzorów.

W przypadku tej funkcjonalności, niestety nie zobaczymy jej na chwilę obecną w NetBeans IDE. A nóż może jego twórcy postanowią coś takiego zrobić :)?

To tyle w tym odcinku!

Już co nieco więcej wiemy o PhpStorm. Dowiedzieliśmy się jaki jest szybki oraz poznaliśmy parę z jego praktyczniejszych funkcjonalnosci. Jest ich jeszcze parę, jak nie paręnaście, ale mam zamiar opisać je dopiero w następnych częściach tej serii wpisów :). Jeśli już jesteście bardzo mocno zainteresowani tym IDE, zapraszam Was TUTAJ, abyście mogli ściągnąć 30-dniową wersję próbną i sami się przekonać jak to jest w tym pisać :).

Mam nadzieję, że ten artykuł nieco otworzył Wam horyzony w tematyce PhpStorma. Liczę też na to, że będziecie dalej chcieli mi towarzyszyć przy jego poznawaniu. Dajcie znać co myślicie o tym IDE. Ponadto, oczywiście, jeśli macie jakieś zastrzeżenia do mojego sposobu pisania lub czegokolwiek innego, proszę, piszcie wszystko w komentarzach :). Trzymajcie się ciepło, gdyż “the winter is coming”.

Komentarze

Dodaj komentarz

loading...