Przygotowanie profesjonalnego środowiska do programowania w PHP

LAMP to skrót od Linux, Apache, MySQL i PHP. Oznacza jak skonfigurować środowisko programistyczne do robienia stron internetowych z użyciem narzędzi Open Source. Tekst pokazuje jak zorganizować takie środowisko z obsługą zewnętrznego serwera kontroli wersji, integracją kontroli wersji ze środowiskiem programistycznym i obsługą debugowania skryptów oraz połączenie tego wszystkiego z lokalnym serwerem strony WWW. A to wszystko w tylko 12 krokach!

Ostatnio eksperymentuję ze środowiskiem Eclipse PDT, które to pozwala na tworzenie stron w PHP z odpluskwianiem itd. Nastawiłem się dzięki 3 dniom medytacji na konfigurowanie wszystkiego co będzie potrzebne, żeby odpalić to środowisko i z góry założyłem że mnie, laikowi, zajmie to przynajmniej tydzień czasu. Ten tekst przedstawia prostą drogę do przygotowania profesjonalnego środowiska programowania w PHP.

No i tu zaskoczenie. Wczoraj zainstalowałem co trzeba, a dzisiaj już mi śmiga wszystko tj. odpluskwianie przez XDebug, Elipse śmiga i zintegrowałem całość z SVN! Ponieważ udało się to postanowiłem podzielić się paroma linkami i wskazówkami

1 Wybór konta online SVN

Jako testowe konto SVN posłużyła mi strona Unfuddle. Aseembla miała jakieś tam mankamenty, przez które nie mogłem jej użyć. Konto to jest w Internecie, przez co można z dowolnego miejsca się z nim połączyć. Można też wykupić lepszą wersję konta za parę dolców na miesiąc i zaprosić innych programistów do współpracy. Konto SVN czyli kontroli wersji jest potrzebne, żeby móc łatwo wymieniać się zmianami w projekcie i śledzić historię zmian w plikach.

Zastanawiałem się też nad własnym SVN na własnym serwerze ale nie mam jeszcze swojego serwera testowego. Więc ta opcja na razie odpada. Ale wkrótce mam zamiar zakupić komputer o niskich potrzebach energetycznych, który spełni potrzebę serwera do testów i deweloperki.

2. Wybór środowiska programistycznego

Po analizie różnych IDE do PHP pod kątem współczynnika jakość / cena wyszło że mam 3 alternatywy:

  • Aptana
  • Eclipse PDT
  • VS.PHP

Aptana i Eclipse PDT są darmowe. VS.PHP kosztuje prawie 300 złotych. Kiedyś testowałem VS.PHP i wypadło świetnie, szczególnie dla mnie, ponieważ od lat używam Visual Studio. Ale nawet nie trzeba mieć pełnego Visual Studio, bo VS.PHP jest też w wersji odrębnej (standalone).

Nie mam na razie funduszy na zakup IDE (a wersję Pro oferuje np. Aptana), to postawiłem na Aptanę darmową albo Eclipse PDT.

W związku z tym zainstalowałem oba te programy. Po chwili z Aptaną stwierdziłem, że to środowisko nie jest dostosowane do moich potrzeb. Programuję w PHP i to środowisko mi nie podeszło pod tą potrzebę. Nie mogłem jakoś stworzyć projektu testowego. Metodą “wyrzuć pierwszego podejrzanego” zrezygnowałem z Aptany i wybrałem Eclipse PDT biorąc pod uwagę, że przy porażce będę musiał zbierać kasę na VS.PHP.

Jeszcze dodam tutaj, że po rozpakowaniu Eclipse PDT nie trzeba go instalować.

3. Integracja z SVN

Nie wyobrażam sobie jak mogłem programować kiedyś bez kontroli wersji. Kopiowanie projektu do innego foldera, tytułowanie go datą i robienie dalej. Uciążliwość. Ale to było już dawno. W międzyczasie powyższych rzeczy otrzymałem konto na Unfuddle. Dostałem link do repozytorium o ładnej nazwie i z przedrostkiem http:/. Ponieważ już miałem zainstalowane SVN i TortoiseSVN wystarczyło, że z menu kontekstowego… jeszcze jedna rzecz:

Czytaj podobne  Miliardy Wycieków Z Aplikacji Facebooka

4. Serwer Apache

Kiedyś korzystałem z Krasnala, ale coś słabo on się rozwija. Kiedyś potestowałem różne paczki serwerowe i spodobał mi się XAMPP. Dlatego zainstalowałem go w domyślnej ścieżce c:\xampp. Strona siedzi w folderze htdocs. Po uruchomieniu XAMPPa pojawia się ikona koło zegarka i okno kontrolne. W tym oknie trzeba uruchomić Apache i MySQL.

5. Co do tego ma Skype?

Jeżeli Apache nie chce się uruchomić, to pewnie Skype go blokuje na porcie 80. Żeby wyłączyć tą niepotrzebną “funkcję” Skype wchodzimy do Narzędzia -> Opcje -> Zaawansowane -> Połączenie i odznaczamy “Użyj portów 80 i 443 jako alternatywnych połączeń przychodzących”. Zapewniam, że wyłączenie tej opcji nie czyni Skype krzywdy.

Po wyłączeniu tej opcji i zrestartowaniu Skype, Apache powinien się już uruchomić.

6. Ciąg dalszy integracji z SVN

Stworzyłem backup produkcyjnej wersji strony i wrzuciłem go do foldera c:\xampp\htdocs. Wpisałem w przeglądarkę http:\\localhost. Zadziałało. Postanowiłem w końcu ustawić SVN. W tym celu zrobiłem prawoklik na folder c:\xampp\htdocs i wybrałem Checkout. Wpisałem adres repozytorium SVN które stworzyłem w punkcie 3. Następnie zrobiłem Commita, czyli wrzucenie plików na repozytorium SVN. Trwało to… 30 minut. Tak tak, mogłem ustawić we właściwościach żeby ignorował obrazki, dokumenty itd. Wtedy by było tego mniej.

Przy okazji: warto dodać do listy ignorowanych pliki konfiguracyjne z hasłami.

Po tych operacjach wprowadziłem zmianę do pliku, zrobiłem Commita, zadziałało.

7. Integracja SVN z Eclipse PDT.

Aby zrobić to znalazłem dwa polecane pluginy: Subclipse i Subversive. W Internecie znalazłem tyle samo dobrych opinii o jednym jak i drugim. I tak samo wielu osobom jeden nie chciał zadziałać jak i drugi. W związku z tym podobnie jak z Aptaną pokierowałem się regułą “wyrzuć pierwszego podejrzanego”. Bardziej podobała mi się dokumentacja Subversive, dlatego wybrałem ten plugin. Szczególnie dlatego, że jako laik od Eclipse, nie chciałem zniechęcić się na samym początku do tego środowiska i jego “świata”.

No i tutaj okazało się, że moja wiedza o Eclipse jest mała. Ściągnę Subversive z internetu i wrzucę gdzieś plugin do foldera Eclipse. haha! A tu ni ma! Jest jakaś ścieżka, ale ona nie jest do pliku. Nic tu nie pasuje. Wtedy dowiedziałem się z tutoriala Subclipse jak się w ogóle instaluje pluginy w Eclipse! No i wykorzystałem ten tutorial żeby zainstalować analogicznie Subversive.

Reasumując: Wchodzimy w Help -> Software Updates -> Available Software. Naciskamy ‘Add Site…’  i wpisujemy ścieżkę “aktualizacyjną” plugina. W moim przypadku było to:

Update Site: http://download.eclipse.org/technology/subversive/0.7/update-site/

Po wpisaniu tego i naciśnięciu Ok, pojawia się nowa pozycja na liście “Subversive Update Site” przy której ustawia się ptaszka  i naciska przycisk “Install”. W ten zgrabny sposób instalują się pluginy w Eclipse. Na koniec trzeba zrestartować Eclipse.

Następnie trzeba poszukać trochę w Google i znaleźć wpis Leszka Gruchały, że to nie wszystko. Trzeba jeszcze zainstalować konektora czyli tzw. “Subversive SVN Connector”. Leszek polecił SVNKit, w związku z czym zgodnie z jego instrukcjami go zainstalowałem. Instalacja wyglądała tak samo jak instalacja Subversive. Po tym też trzeba zrestartować Eclipse.

8. Zgłoszenie Eclipsowi, że projekt jest SVN-teges

Żeby zgłosić że projekt jest już pod kontrolą SVN trzeba kliknąć na niego prawym przyciskiem w oknie ‘PHP Explorer’ w perspektywnie PHP. Tak przy okazji: perspektywy w Eclipse są cudowne. Żeby między nimi się przełączać zobacz po prawej stronie u góry w pasku narzędzi.

Czytaj podobne  Dokumentacje API popularnych mikroblogów, Grona i Delicious

W Eclipse wszystko co jest związane z współpracą należy do grupy Team. Tam samo SVN. Dlatego klikając w projekt prawym przyciskiem wybieramy Team -> Share Project bodajże. W oknie które się pojawi można podać ustawienia SVN które posłużą do integracji. Po tej akcji każdy plik projektu dostanie cyferkę, która mówi w jakiej wersji jest. Przydatna funkcja. No i teraz już wszystko jest prostsze, bo wystarczy kliknąć prawym przyciskiem na projekt albo plik i przejść do “Team” żeby zobaczyć wszystkie i więcej opcji znanych z TortoiseSVN czyli Commit, Update itd. itp.

Oprócz tego jest też dostępna perspektywa ‘SVN Repository Exploring’. To już twórcy mogli sobie odpuścić. Jak dla mnie, to jak posmarowanie kromki dżemem wiśniowym i położenie na nią jeszcze kilku wiśni 🙂

9. Słowo odnośnie otwierania projektu w Eclipse

Chciałem jeszcze napisać słowo o tworzeniu projektu w Eclipse. W sumie nie jestem pewien czy dobrze to zrobiłem. Ale działa. Wybrałem File -> New -> PHP Project. W oknie które się pojawiło wskazałem folder c:\xampp\htdoc. Program przemielił go i utworzył mi projekt. Pojawił się w trakcie jakiś błąd, ale nie wpłynął on na działanie. Może robi się to inaczej, jak tak to proszę o informacje. Nie wiem jeszcze czy to normalne, że Eclipse pamięta projekt bez zapisywania. Czy może można gdzieś samemu wybrać zapisywanie konfiguracji projektu? Czy wszystko trafia automagicznie do foldera roboczego Eclipse tj. D & S\<nazwa_uzytkownika>\workspace? Czy może coś przeoczyłem tutaj?

10. Debugowanie

Skoro już mam kontrolę wersji, to warto by było zobaczyć jak wygląda odpluskwianie. Tutaj niestety panowie od Eclipse PDT się nie popisali. Panowie od XAMPP też nie. W konsekwencji nie dostajemy rozwiązania prosto z pudełka. Na szczęście o Eclipse jest tak dużo cudownych blogów z obrazkami, że aż zacząłem zazdrościć programistom Java.

Po pierwsze projekt musi, według moich najlepszych informacji, leżeć w głównym folderze serwera Apache czyli w standardowym przypadku w c:\xampp\htdoc. Inaczej debuger myli ścieżki co w konsekwencji prowadzi do błędów. Ale nie jestem pewien tego, ponieważ się okazało że w ogóle miałem źle ustawionego XAMPPA (o czym poniżej).

XAMPP ma standardowo włączony debuger Zend. Ponieważ plotka głosi, że XDebug jest lepszy, postanowiłem użyć jego, ustawiając go w opcjach debugowania Eclipse. Jednak nie działało to, tj. strona nie przerywała na punktach przerwania (breakpoint). Po researchu i znalezieniu poradnika odkryłem, co powyższe. Trzeba zmienić debuger mojego serwera Apache na XDebug żeby móc go używać w Eclipse. Tak więc wbrew poradnikowi nie ściągnąłem innej wersji dll-ki XDebug, ponieważ twórcy XAMPP sami dbają o takie szczegóły jak zgodność wersji.

Plik dll XDebug znajduje się już w ‘odpowiednim miejscu’. Nie odpowiadając na pytanie, gdzie jest ‘odpowiednie miejsce’  warto po prostu otworzyć plik konfiguracji PHP, który standardowo jest tutaj: C:\xampp\apache\bin\php.ini i poszukać nagłówka [Zend] i zakomentować całą zawartość. W tym pliku do komentowania służy średnik. Pod tym fragmentem jest nagłówek [XDebug] i tam z kolei trzeba wszystkie linie odkomentować. U mnie były to opcje:

zend_extension_ts=”C:\xampp\php\ext\php_xdebug.dll”
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=1
xdebug.profiler_output_dir=”C:\xampp\tmp”

Dlatego właśnie nie pisałem o ‘odpowiednim miejscu’ bo widać gdzie plik xdebug jest stąd. Można wejść do tego folderu (c:\xampp\php\ext) i upewnić się na własne oczy.

Czytaj podobne  Testy funkcjonalne aplikacji na Grono.net

Po tych zmianach restartujemy Apache przez okno kontrolne XAMPP (patrz ikona koło zegarka).

Żeby sprawdzić czy XDebug jest dobrze skonfigurowany, można stworzyć plik php z zawartością:

<?php phpinfo() ?>

Odpalenie tego pliku spowoduje wyświetlenie konfiguracji PHP. Jeżeli jest tam pozycja xdebug, to wszystko jest ok. Jak nie ma to znaczy, że trzeba sprawdzić jeszcze raz powyższą konfigurację.

11. Konfiguracja debugowania w Eclipse

Koło czwartej ikony od lewej na pasku narzędzi jest strzałka. Naciskamy strzałkę i wybieramy ‘ Debug configurations’. Klikamy prawym na PHP Web Page i tworzymy nową konfigurację. Jako server debugger wybieramy ‘XDebug’, PHP Server może zostać domyślny, file: podajemy od jakiej strony chcemy zacząć debugowanie. Opcja Break On First Line powoduje przerwanie działania skryptu PHP na pierwszej linii. Opcja Autogenerate powinna być włączona. Jeżeli wszystko jest ustawione dobrze, to w poniższym oknie powinna pojawić się prawidłowa ścieżka do pliku. Z zakładek Advanced i Common nic nie potrzebowałem.

Więcej o konfiguracji debugowania w Eclipse PDT we wpisie anonimowego autora tego bloga (po polsku).

12.  Pierwszy breakpoint

Żeby przetestować działanie debugowania można kliknąć w pasek po lewej stronie okna edycyjnego kodu PHP dwukrotnie. Pojawi się tam małe kółko które oznacza ustawienie punktu przerwania. Teraz odpalamy debugowanie przez ikonę robaka (czwarta ikona od lewej w pasku narzędzi). W tym momencie pierwsza linia kodu (jeżeli opcja Break On First Line jest włączona) powinna podświetlić na zielono, co oznacza, że debugowanie działa. Fajnie się jest w tym momencie przełączyć na perspektywę ‘PHP Debug’ gdzie są ikony Resume, Terminate i Suspend. Czyli te służące do obsługi debugowania.

Uwaga! Zamknięcie okna przeglądarki nie oznacza zakończenia debugowania. Po ponownej próbie odpalenia pojawi się komunikat ‘Web Launch Already Running’. Żeby przerwać sesję debugowania trzeba przejść do perspektywy PHP Debug i nacisnąć ikonę Terminate (CTRL + F2). Jest to dla mnie dosyć uciążliwe, ale nie wiem jak to obejść tj. żeby zamknięcie zakładki przeglądarki przerywało debugowanie.

Tutaj pojawiają się różne komplikacje np. co jak zakładka spowoduje otwarcie nowej zakładki itd. albo jak skonfigurować Eclipse PDT do działania z innym profilem przeglądarki np. z Firebug i innymi developerskimi narzędziami. Niestety na razie tego jeszcze nie wybadałem. Za wszystkie informacje na ten temat byłbym wdzięczny.

13. Podsumowanie

Na koniec znalazłem jeszcze ten krótki poradnik, który też pokazuje jak zrobić środowisko LAMP z użyciem tych samych fragmentów czyli Xampp, Eclipse PDT i XDebug. Szczególnie polecam komentarze, gdzie może pojawić się coś o czym nie pamiętałem wspomnieć.

Przygotowanie LAMP zajęło mi tylko 4-5 godzin. Jestem mile zaskoczony i powoli zaczynam się przekonywać do Eclipse. Wizualizacja code swarm rozwoju projektu Eclipse też zaczęła nabierać dla mnie nowego znaczenia. Na początku widać było ile pracy poszło na przygotowanie specyfikacji tego środowiska. Efekty tego mam okazję teraz widzieć na własne oczy i widok ten (perspektywa) mi się bardzo podoba.


Przeczytaj też

Najlepsza książka do Pythona Nie wiesz, z jakiej książki/ebooka uczyć się programowania w języku Python? Postanowiłem zrobić zestawienie 10 książek z Heliona na ten temat, abyś mó...
Komplet 28 ebooków i kursów, aby zostać programist... Od jakiegoś czasu dostaję zapytania na temat tego jakie książki, kursy i ebooki polecam. W związku z tym postanowiłem przygotować dzisiaj zestaw, któr...
120 tapet programistycznych za darmo do pobrania Trochę mi się nudziło, więc przygotowałem zestaw 120 tapet dla programistów. Możesz go pobrać. Tapety są w rozdzielczości 1366x768. Podzielone ...
10 fiszek do nauki programowania w Pythonie Uczysz się programowania w Pythonie? Pobierz te 10 fiszek, które ułatwią Ci zapamiętanie funkcji wbudowanych* w Pythona! Programowanie potrafi ...
Napisano w Kolumna Tagi: , , , , , , , , , ,
2 comments on “Przygotowanie profesjonalnego środowiska do programowania w PHP
  1. Kuba pisze:

    Ja bym jeszcze proponował przetestować najnowszego netbeansa, wersje dla php.

  2. Windykacja pisze:

    1) NetBeans jest dobry ale nie zrobisz nim czegoś takiego: $objSome->objIncluded->someMeth(); – ‘code assist’ nie daje rady i po prostu nie podpowiada końcowej metody. mimo to pozostaje na pulpicie bo… najprzyjemniej się nim debuguje.

    2) PDT v2.0 : brakuje generatora kodu (getter, setter) – a może ślepy jestem, poszedł w odstawkę

    3) Aptana Studio 1.2 + plugin php1.0 : robi to cudo z pkt.1 i dlatego zagościła na komputerku razem z NetBeans 6.5+

Menu