SZYBKIE PISANIE PROGRAMÓW
Transkrypt
SZYBKIE PISANIE PROGRAMÓW
RAPORT Zend Studio 4 Odkrywamy środowisko programistyczne Zend Studio 4 SZYBKIE PISANIE PROGRAMÓW Zend Studio, według programistów PHP, jest najbardziej dojrzałym i funkcjonalnym środowiskiem programistycznym IDE dla języka PHP. W najnowszej wersji usprawniono obsługę baz danych oraz wprowadzono inne ulepszenia. Zbadamy to środowisko i pokażemy, jak za jego pomocą można przyspieszyć pisanie w PHP. CARSTEN MÖHRKE W ybór środowiska programistycznego IDE często zależy od gustu. Wielu programistów PHP preferuje pracę w edytorach tekstowych, takich jak Emacs czy Vim. Ci, którzy wolą zintegrowane środowiska, mają do wyboru kilka linuksowych rozwiązań tego typu. Edytory można zastąpić środowiskami Quanta Plus (ogólnodostępny), Maguma (niedostępny kod źródłowy), a nawet Eclipse z odpowiednimi wtyczkami. W kręgach PHP za najbardziej dojrzałe i wydajne środowisko IDE uznaje się Zend Studio. Zend Studio jest produktem izraelskiej firmy Zend Software, która sama preferuje Zend Studio Personal Edition W wersji Zend Studio Personal Edition nie ma następujących funkcji: ■ profiler, ■ analizator kodu, ■ obsługa CVS, ■ inspektory, ■ obsługa FTP, ■ zdalny debugging, ■ opisy funkcji podczas pisania kodu, ■ wyszukiwanie plików, ■ drukowanie, ■ wcięcia bloków. 38 nazwę „The PHP Company”. W starszych wersjach występowały problemy z wydajnością i stabilnością, ale ostatnia – Zend Studio 4 – to już naprawdę wydajne i stabilne środowisko deweloperskie. Oprogramowanie Zend Studio nie jest udostępniane na zasadach Open Source, ani nie jest bezpłatne, jednak cena 249 USD nie jest wygórowana. Wersję próbną można pobrać ze strony firmy Zend. Tak pobrane oprogramowanie działa przez 21 dni, po czym zostaje sprowadzone do niekomercyjnej wersji Zend Studio Personal Edition, której jednak brakuje tak wielu funkcji, że raczej nie warto się nią interesować (patrz ramka „Zend Studio Personal Edition”). wer Zend Studio (Rysunek 1). Wybieramy odpowiedź pozytywną, ponieważ serwer przydaje się potem do efektywnego debuggowania programów. Rysunek 1: Kreator prowadzi użytkownika przez proces instalacji. Pamiętajmy, żeby zaznaczyć opcję instalacji serwera Zend Studio. Instalacja Po pobraniu i rozpakowaniu 47-megabajtowego archiwum możemy od razu uruchomić program instalacyjny. Kreator prosi o podanie wymaganych informacji. Poza typowymi pytaniami dotyczącymi katalogów, można też określić, którą wersję języka PHP program ma obsługiwać (4 lub 5). Wersje 4 i 5 języka PHP nie są w pełni zgodne i obejmują różne zestawy poleceń, dlatego wybór ma wpływ na sposób podświetlania i sprawdzania składni. Jednak ustawienie to można zmienić także na późniejszym etapie. Podczas instalacji musimy odpowiedzieć na jeszcze jedno ważne pytanie: czy instalować ser- NUMER 19 SIERPIEŃ - WRZESIEŃ 2005 WWW.LINUX-MAGAZINE.PL Interfejs Po zakończeniu instalacji, Zend Studio automatycznie wykrywa język systemu i uruchamia program z obsługą tego języka. Podczas pisania artykułu środowisko obsługiwało języki angielski, francuski, niemiecki, hiszpański i rosyjski. Interfejs użytkownika (Rysunek 2) składa się z kilku paneli. W obszarze w lewym górnym rogu widzimy pliki, serwery i bazy danych, z których możemy bezpośrednio korzystać. Niżej dostępne są inspektory, za pomocą których można szybko przejrzeć pliki, klasy i metody wchodzące Zend Studio 4 w skład bieżącego projektu. W dolnej części ekranu znajdziemy okna komunikatów oraz debuggingu. Pierwsze informuje o trwającej sesji debuggingu oraz jej statusie. W drugim wyświetlane są informacje o wartościach je, wybierając analogicznie nazwaną pozycję menu Tools (Narzędzia). Wiele ustawień zależy tylko od upodobań użytkownika. Są jednak i takie, którym warto przyjrzeć się dokładnie, ponieważ mają wpływ na wygodę korzystania ze środowiska programistycznego. Na przykład, możemy określić sposób wyświetlania tabulatora w zakładce Editing (Edycja). Ważny może być także Newline format (Format nowego wiersza) – tutaj określamy, czy nowe wiersze mają być reprezentowane przez znaki powrotu karetki i wysuwu wiersza (według standardu Windows), czy tylko wysuwu wiersza (według standardu uniksowego). RAPORT tej pory z poziomu środowiska programistycznego możemy korzystać z baz danych, tabel i rekordów, do których ma dostęp dany użytkownik bazy. Konfiguracja serwera Rysunek 2: Interfejs użytkownika Zend Studio. Rysunek 3: Okno dialogowe Configure FTP Server umożliwia zdefiniowanie połączenia Niejednokrotnie przyjdzie nam pracować z plikami zapisanymi na serwerze. Środowisko Zend zapewnia bezpośredni dostęp do takich plików przez protokół FTP. Jeśli wymagamy większego bezpieczeństwa, możemy skorzystać z protokołów SFTP lub FTP over SSH. Z menu File (Plik) można otworzyć okno dialogowe pozwalające na skonfigurowanie nowego połączenia z Internetem (Rysunek 3). Wymagane jest podanie standardowych informacji – nazwy hosta, nazwy użytkownika i hasła. Wyłączamy opcję Reconnect on Startup (Połącz po uruchomieniu), bo w przeciwnym razie program Zend Studio będzie próbował łączyć się z serwerem przy każdym uruchomieniu – a to może przeszkadzać, gdy lista serwerów jest długa albo serwery te są niedostępne. Zend Studio obsługuje również zasoby CVS; dostęp do tych konfigurujemy opcją z menu narzędzi. z serwerem FTP. zmiennych, stosie wywołań itp. W obszarze po prawej stronie prezentowany jest efekt działania tworzonego programu. Można tam zobaczyć, jak będzie wyglądał skrypt po uruchomieniu. Zend Studio wyświetla również nagłówki HTTP – tej przydatnej funkcji nie ma w zwykłej przeglądarce WWW. Wreszcie, w centrum ekranu znajduje się okno edycji. Dobre wieści dla tych, którzy zastanawiają się, czy wszystkie te panele zmieszczą się na ich małych ekranach: każdy z nich można przeskalować, a te niepotrzebne – ukryć. Ustawienia Zanim rozpoczniemy „produkcyjne” korzystanie z oprogramowania Zend Studio, warto dostosować niektóre ustawienia. Okno dialogowe do personalizowania systemu nosi nazwę Preferences (Preferencje) i uruchamiamy Konfiguracja serwera baz danych Nową funkcją wprowadzoną w wersji 4 środowiska jest bezpośredni dostęp do baz danych. Listę skonfigurowanych serwerów można przejrzeć po kliknięciu opcji SQL w oknie zarządzania plikami (lewy górny róg). Oczywiście, tuż po instalacji lista serwerów jest pusta. Aby wprowadzić nowy serwer, klikamy obszar okna prawym przyciskiem myszy i z podręcznego menu wybieramy pozycję „Dodaj serwer” (Rysunek 4). Obecnie Zend Studio umożliwia bezpośredni dostęp do następujących serwerów baz danych: Oracle, SQLite, Microsoft SQL Server, PostgreSQL oraz MySQL. Po wprowadzeniu danych wymaganych do zalogowania, możemy natychmiast rozpocząć korzystanie z serwera. Otwieramy połączenie, klikając serwer prawym przyciskiem myszy. Od WWW.LINUX-MAGAZINE.PL Rysunek 4: Konfiguracja serwera SQL. Rysunek 5: Dostęp do serwera MySQL. Strukturę lub zawartość tabeli bazy danych oglądamy w tym samym oknie, w którym normalnie znajduje się edytor. Zend Studio nie umożliwia jednak bezpośredniego operowania na rekordach - ale przecież ten program nie ma służyć jako fronton do baz danych. W trybie bazy danych można jednak wprowadzać polecenia SQL; robimy to w dolnej części interfejsu (Rysunek 5). Dzięki temu programista ma możliwość sprawdzenia poprawności zapytania SQL przed umieszczeniem go w kodzie PHP. Zastosowanie produkcyjne Choć Zend Studio umożliwia edytowanie indywidualnych plików, programiści zazwyczaj operują na całych projektach. Po dodaniu nowego projektu – opcja New Project (Nowy projekt) menu Project (Projekt) – zostaje uruchomiony kreator, który prosi o wprowadzenie nazwy projektu, ścieżki do katalogu projektu oraz preferencji dotyczą- NUMER 19 SIERPIEŃ - WRZESIEŃ 2005 39 RAPORT Zend Studio 4 cych debuggowania. Po utworzeniu projektu widzimy go po lewej stronie, w obszarze inspektora projektów. Pliki można dodawać do projektu za pomocą prawego przycisku myszy lub przez menu File (Plik). Zend Studio udostępnia szereg użytecznych funkcji wspomagających kodowanie. Oprócz podświetlania składni (którą to funkcję obsługują dziś nawet najprostsze edytory) jest tu również bardzo użyteczny mechanizm: automatyczne uzupełnianie kodu. Kiedy piszemy kod programu, Zend Studio wyświetla listę funkcji, zmiennych lub innych elementów, których nazwy rozpoczynają się od wpisanych liter. Biorąc pod uwagę liczbę funkcji PHP, bardzo użyteczna jest też funkcja wyświetlania krótkiej informacji o wpisywanej funkcji. Po jednoznacznym zidentyfikowaniu funkcji wyświetlana jest lista jej parametrów. Oprogramowanie Zend Studio dynamicznie dodaje do mechanizmu uzupełniania funkcje, zmienne i klasy zdefiniowane przez programistę. Uzupełnianie nie ogranicza się do obecnie edytowanego pliku; obejmuje także inne pliki otwarte w danej chwili. (Funkcja uzupełniania kodu może powodować pewne zamieszanie: Zend potrafi zaoferować klasę pochodzącą z pliku, który jest otwarty, ale nie należy do bieżącego projektu). Ponieważ w PHP zmiennych się nie deklaruje, Zend Studio nie może wiedzieć, jaki typ danych powinien reprezentować parametr przekazywany funkcji. Programista może jednak udostępnić taką informację w postaci bloku dokumentacji (docblock) dodanego do własnej funkcji, klasy czy metody. Aby wprowadzić taki blok dokumentacji, należy prawym przyciskiem myszy kliknąć funkcję w oknie inspektora, a następnie wybrać pozycję Add description (Dodaj opis). W pierwszej linijce bloku dokumentacji powinien znaleźć się krótki opis funkcji, który pojawi się podczas uzupełniania nazwy funkcji przez Zend Studio. W blokach dokumentacji można używać znaczników opisujących właściwości funkcji lub klas. Znaczniki zawsze rozpoczynają się od znaku @. Znacznik musi być poprzedzony gwiazdką (*) i spacją. Na przykład, wpis @return: określa typ wartości zwracany przez funkcję. Znacznik @param: oznacza parametr. Każdy parametr wymaga oddzielnego wpisu; wpis zawiera nazwę zmiennych i typ danych. Kompletną listę znaczników znajdziemy pod adresem [1]. Na pierwszy rzut oka wszystko to może się wydawać skomplikowane, ale to dobry po- 40 mysł – bloki dockblock są bardzo przydatne przy automatycznym generowaniu dokumentacji. W menu Tools dostępne jest narzędzie PHPDocumentor, które upraszcza proces dokumentowania projektu (Rysunek 6). Tworzy ono dokumentację kodu źródłowego w formacie HTML, PDF, CHM lub XML. cją klawiszy [Ctrl]+[Alt]+[A] lub za pomocą menu narzędzia. Debugging Oczywiście, Zend Studio pomaga także lokalizować bardziej ukryte błędy. Narzędzie debugujące umożliwia przerwanie wykonywania kodu i sprawdzenie bieżącej wartości najważniejszych zmiennych. Zend Studio obsługuje debuggowanie lokalne i zdalne. W pierwszym przypadku kod jest uruchamiany bezpośrednio w Zend Studio, a wynik wyświetlany w oknie po prawej stronie. Ponieważ nie zawsze wszystko można przetestować lokalnie, Zend Studio potrafi także debugować kod znajdujący się na serwerze. Rysunek 6: PHPDocumentor pomaga w tworzeniu dokumentaAle samo uruchomienie cji pliku z kodem źródłowym. kodu programu i sprawdzenie wyników nie wystarcza. Dlatego Zend Inną przydatną funkcją jest automatyczne Studio pozwala na skonfigurowanie dowolanalizowanie składni. Już podczas pisania nej liczby punktów kontrolnych. Dodajemy Zend Studio sam sprawdza, czy programista je lub usuwamy po prostu klikając numer linie popełnił błędu składniowego. Problemanijki. Po ustawieniu punktów kontrolnych, tyczne linijki kodu podkreśla na czerwono, wciśnięcie klawisza [F5] lub wybranie polea na prawym marginesie wstawia czerwony cenia Run z menu debuggowania spowoduje znaczek, co ułatwia znajdowanie błędów. Po uruchomienie kodu. Kiedy analizator skłanajechaniu myszą na znaczek lub nieprawidniowy dotrze do takiego punktu, przerywa dłowy kod, środowisko IDE pokazuje komudziałanie programu tuż przed daną linijką, nikat o błędzie. a programista może uważnie przyjrzeć się W Zend Studio dostępne są także gotowe statusowi aplikacji. bloki kodu udostępnione przez programistów Jak wspomniano, po prawej stronie ekranu Open Source i przetestowane pod kątem widzimy efekt działania skryptu. Pod tym funkcjonalności. To kolejny bardzo przydatobszarem można odczytać bieżący status ny dodatek wprowadzony w Zend Studio 4: skryptu. Panel pokazuje wykorzystywane dzięki niemu nie musimy ponownie wynajdozmienne, w tym typy danych i ich aktualną wać koła. Biblioteka zawiera ponad 300 blozawartość. Podobnie prezentowane są zawarków kodu i umożliwia importowanie nowych. tości obiektów i tablic. Domyślnie widoczne Oczywiście, żaden programista nie jest są tylko zmienne lokalne (tj. widoczne w biebezbłędny. Sztuka polega na tym, żeby jak żącym kontekście). Jednak klikając symbol najwięcej błędów wykryć samodzielnie. + obok słowa GLOBALS, możemy przejrzeć I znów oprogramowanie Zend Studio okazuwartości globalnych wraz z ich zawartością. je się niezwykle pomocne. Bardzo przydatną Ciekawe informacje można także znaleźć funkcją jest analizator kodu. Inne środowiw stosie wywołań; wyświetlimy go, klikając ska IDE też mają podobne mechanizmy, ale pozycję Stack (Stos). Stos wywołań jest miejten zastosowany w Zend jest unikalny. Analiscem, w którym analizator składniowy zarzązator znajduje niespójności, które mogą – dza wywołaniami funkcji. Zaglądając do niechoć nie muszą – okazać się błędami. Analigo, programista widzi nazwy funkcji wywołazuje kod i wskazuje podejrzane miejsca. nych w danym czasie przez system. Na saAnalizator wychwytuje linijki, które, choć mym dole stosu zawsze znajduje się funkcja syntaktycznie poprawne, są przejawami main (), tj. nadrzędna funkcja aplikacji. Cały złych nawyków programistycznych. Funkcję mechanizm pozwala zbadać, jakie wartości analizowania kodu uruchamiamy kombina- NUMER 19 SIERPIEŃ - WRZESIEŃ 2005 WWW.LINUX-MAGAZINE.PL Zend Studio 4 RAPORT przybierają zmienne w poszczególnych miejscach stosu, i czy nie zostały one zastąpione w wyniku działania innych wywołań. Po dotarciu do punktu kontrolnego można kontynuować interpretację kodu linijka po linijce, albo pozwolić na wykonanie programu aż do następnego punktu. Pierwsza z tych metod przydaje się wtedy, gdy chcemy sprawdzić, jakie zmiany zachodzą w indywidualnych wartościach w miarę wykonywania kodu. Wciśnięcie przycisku [F11] powoduje przejście do następnej linijki. Wybierając polecenie Run (Wykonuj), każemy interpreterowi wykonywać kod do chwili napotkania następnego punktu kontrolnego. Zdalny debugging Zdalny debugging jest bardziej zaawansowaną metodą wyszukiwania błędów: kod działa bezpośrednio na serwerze, Zend Studio zdalnie steruje sesją PHP. Do działania tego mechanizmu wymagany jest serwer Zend Studio, udostępniany wraz z właściwym środowiskiem. Jeśli podczas instalowania oprogramowania Zend Studio nie zainstalowaliśmy komponentu serwera, możemy go pobrać ze strony www.zend.com. Serwer nie jest aplikacją samodzielną, lecz działa w integracji z serwerem WWW Apache. Można zastosować albo serwer Apache dołączony do produktu, albo ten, który jest już zainstalowany w systemie. W drugim przypadku program instalacyjny podejmuje próbę znalezienia ścieżek do plików konfiguracyjnych, takich jak httpd.conf oraz php.ini; ewentualnie użytkownik sam podaje te ścieżki. Ponadto instalator musi wiedzieć, które klienty mają mieć dostęp do serwera. Zend Server nie powinien być wdrażany na produkcyjnych serwerach WWW, ponieważ procedura instalacji powoduje zastąpienie pliku index.html w katalogu DocumentRoot serwera WWW. Po restarcie Apache połączenie ze stroną domową spowoduje wyświetlenie w przeglądarce strony serwera Zend Studio. Na stronie tej znajdziemy przegląd opcji konfiguracyjnych; można tam również zmodyfikować konfigurację PHP. Program instalacyjny tworzy kopie zapasowe zmodyfikowanych plików. Najważniejsze funkcje sterowania serwerem Zend są dostępne z poziomu środowiska Zend Studio. Debugging z udziałem serwera włączamy w oknie opcji Preferences | Tools | Debug. Potem warto przetestować połączenie z serwerem (Check debug server connection). Po udanym zakończeniu testu Rysunek 7: Profiler Zend Studio analizuje zajętość procesora i pomaga lokalizować wąskie gardła. można skorzystać z funkcji Debug URL (przycisk [F8]). W nowym oknie wpisujemy adres URL strony, którą chcemy poddać testowi. Rozpoczynamy sesję, klikając przycisk OK; otwiera się przeglądarka, za pomocą której możemy zdalnie sterować sesją. Zend Studio pobiera kod źródłowy bezpośrednio z serwera, nie trzeba więc tworzyć lokalnej jego kopii. W przeciwieństwie do debuggingu lokalnego, zdalny debugger przerywa pracę przed pierwszą linijką kodu; nie ma więc potrzeby ustawiania punktów kontrolnych. Ponadto funkcjonalność jest taka, jak w przypadku debuggingu lokalnego. Co ciekawe, wynik debuggingu jest prezentowany zarówno w programie Zend Studio, jak i w przeglądarce. W niektórych przypadkach dane wynikowe są najpierw zapisywane w buforze wyników, a nie dostarczane do przeglądarki. Aby zawartość bufora jednak do niej dotarła, w kodzie źródłowym umieszczamy wywołanie flush (). Choć środowiska Eclipse, Emacs i Quanta+ są tańszymi alternatywami programowania w PHP pod Linuksem, żadna z tych aplikacji nie udostępnia debuggera. Ponadto Zend udostępnia znacznie lepiej dopracowaną pomoc kontekstową. Programiści zajmujący się większymi projektami mogą narzekać na brak systemu kontroli wersji, a klient CVS jest wciąż daleki od doskonałości; jednak Zend Studio w wydaniu czwartym nadrabia to innymi przydatnymi funkcjami. Po przeanalizowaniu wszystkich za i przeciw, wniosek nasuwa się sam: oprogramowanie Zend Studio jest warte swojej ceny. ■ INFO [1] Podręcznik modułu PHPDocumentor: http://www.phpdoc.org [2] Zend: http://www.zend.com Szybkość Zapewne nie są nam obce przypadki powolnego działania nowych aplikacji internetowych. Często trudno jest zlokalizować wąskie gardło odpowiedzialne za powolną pracę. W oprogramowaniu Zend Studio dostępny jest mechanizm profilera (menu Tools). Profiler analizuje program działający na serwerze i pokazuje, jak dużo czasu pracy procesora zajęło przetwarzanie pliku lub funkcji (Rysunek 7). WWW.LINUX-MAGAZINE.PL Podsumowanie AUTOR Carsten Möhrke jest konsultantem i szkoleniowcem pracującym na własną rękę. Napisał książkę o programowaniu w PHP i pełni funkcję dyrektora firmy netviser. Z Carstenem można skontaktować się, pisząc na adres [email protected]. NUMER 19 SIERPIEŃ - WRZESIEŃ 2005 41