87
INTERNET.sierpień.2006
www.mi.com.pl
Bartłomiej Dymecki: Wiem,
że od wielu lat zajmuje się Pan
programowaniem w PHP. Z racji
sporego doświadczenia na pewno
wie Pan, jakie narzędzia są najbar-
dziej przydatne programiście PHP?
Patryk Zawadzki: Przede wszystkim
dobry edytor. Kolorowanie składni to
standard od lat, ale nie jest to jedyna
potrzeba. Rzadko kiedy zdarza się
pracować na kopii lokalnej serwisu,
a na ogół w projekcie uczestniczy od
kilku do kilkunastu osób i nieodzowne
staje się uaktualnianie plików na ser-
werze. Tutaj z pomocą przychodzą
programy, które umożliwiają otwiera-
nie i zapisywanie plików bezpośrednio
za pośrednictwem połączenia FTP,
SSH, bądź potrafią korzystać z repo-
zytoriów kodu, jak Subversion czy
CVS. Kiedy pracowałem pod Win-
dows, używałem do tego świetnego,
moim zdaniem, jEdita, przez jakiś czas
miałem też okazję pracować w Zend
Studio i Dreamweaverze. Dreamwea-
ver jest zdecydowanie najwygodniej-
szy, jeśli oprócz programowania musi
się nanosić poprawki na szablony. Za-
równo on, jak i produkty Zenda mają
jednak wadę – wysoką, jak na polskie
realia, cenę. Zend Studio ma także
bardzo nieintuicyjny interfejs i dostęp
do wszystkich funkcji programu wy-
maga od użytkownika zakładania pro-
jektu dla każdego serwisu, w którym
wprowadza zmiany. Być może jest to
praktyczne w środowiskach „enter-
prise”, ale w sytuacji, gdy pracuje się
dla typowej agencji interaktywnej
i jednocześnie zdarza się wprowadzać
poprawki w kilkunastu projektach,
ciągłe przełączanie projektów staje
się uciążliwe.
Jak wspomniałem, nie korzystam
obecnie z systemu Windows. Od kilku
lat jestem wiernym użytkownikiem Li-
nuksa i środowiska GNOME, gdzie
– podobnie jak w siostrzanym KDE
– integracja zasobów sieciowych jest
dla użytkownika przeźroczysta. Dlate-
go też do pracy wystarcza mi narzę-
dzie niewiele bardziej skomplikowane-
go niż notatnik. Gedit – edytor tekstu
GNOME – ma zintegrowaną obsługę
podświetlania składni dla wielu forma-
tów i pozwala otwierać pliki przez
zwykłe przeciągnięcie ikony pliku z fol-
deru FTP/SFTP do okna edytora. Ma
też rozbudowany system wtyczek,
a jedno z rozszerzeń dostarczanych
z programem dodaje niesamowicie po-
mocny system snippetów – szablo-
nów wstawianych za pomocą zdefinio-
wanego makra i uzupełnianych „w lo-
cie” za pomocą klawisza tabulacji.
Przed Geditem byłem wiernym użyt-
kownikiem Quanty z pakietu KDE. Jej
przewagą był system uzupełniania
nazw zmiennych i funkcji w ramach
otwartego aktualnie dokumentu, jed-
nak program ten ma duży narzut pa-
mięci w stosunku do wielkości pliku
i praca z plikami złożonymi z dziesiątek
tysięcy linii stawała się niemal niemoż-
liwa – zdarzały się sytuacje, w których
musiałem czekać kilkadziesiąt sekund
(!) na pojawienie się wpisanego właś-
nie tekstu.
Jeśli chodzi o komputery Apple,
obowiązkową pozycją jest genialny
program TextMate. Za niewielką
opłatą dostajemy do ręki najwygod-
niejszy ze znanych mi edytorów.
Do pracy pod systemem Windows
przydatny może być również program
Netdrive (
HTTP
://
WWW
.
TNIJ
.
ORG
/
NETDRI
-
VE
), który pozwala zamontować zasób
FTP jako zwykły napęd.
BD: Wspomniał Pan o syste-
mach kontroli wersji. Czy mógłby
Pan nieco rozszerzyć ten temat?
PZ: Praca przy większych projektach
staje się dużo wygodniejsza, kiedy do
pomocy zaprzęgnie się systemy auto-
matycznego śledzenia zmian w pli-
kach. Najpopularniejsze z nich to CVS
i jego młodszy, nieco bogatszy w funk-
cje brat Subversion. Oba narzędzia
nie tylko umożliwiają sprawdzanie his-
torii zmian w każdym z plików, ale
także odtworzenie jego stanu, jeśli
zajdzie taka potrzeba, z dowolnego
punktu w czasie. W przypadku pracy
z tymi repozytoriami użytkownicy
Windows z pewnością docenią rewe-
lacyjne narzędzia TortoiseCVS oraz
TortoiseSVN. Oba oferują integrację
z powłoką systemu, przez co lista pli-
ków w Eksploratorze Windows czy
Directory Opus (
HTTP
://
WWW
.
GPSOFT
.
COM
.
AU
) zostaje automatycznie wzbo-
gacona o emblematy obrazujące stan
każdego pliku. Użytkownicy Linuksa
bez problemu zadowolą się konsolo-
wymi klientami obu systemów, więk-
szość edytorów pozwala wygodnie
podłączyć je pod wybrane skróty kla-
wiszowe i korzystać z nich bezpo-
średnio z poziomu aplikacji.
BD: Piąta wersja języka PHP
przyniosła znacznie bardziej roz-
budowane możliwości programo-
wania obiektowego. Czy są one
naprawdę przydatne dla osób za-
wodowo zajmujących się PHP?
PZ: Co prawda PHP daleko jeszcze do
„prawdziwych” środowisk obiekto-
wych, ale zmiany między wersją 4 i 5
można określić mianem rewolucyj-
nych. Przede wszystkim poprawiono
domyślne zachowanie operatorów
przypisania w połączeniu z operato-
rem
new
– nie zdarzają się już sytu-
acje, w których kopiowany był cały
obiekt zamiast referencji, co w PHP4
popularnie obchodzono przez kon-
strukcję
$zmienna = & new Klasa()
.
Ujednolicono także nazewnictwo
konstruktorów przez wprowadzenie
metody
_construct
, co pozwala łat-
wo wyłapać je w kodzie i wygodnie
dziedziczyć przez wywołanie
parent::
_construct
, bez zastanawiania się na
jakim poziomie został zdefiniowany
konstruktor nadrzędny. Nie sposób
zapomnieć także o pojawieniu się
destruktorów, których brak w PHP4
starano się wypełnić dziwacznymi
łańcuchami funkcji podłączanych pod
sygnał zakończenia skryptu.
Programiści żyjący z budowania
modułów dla innych firm programis-
tycznych z pewnością ucieszyli się
z implementacji widoczności obiek-
tów, podczas gdy w PHP4 wszystkie
zmienne i metody były zawsze pub-
liczne, co ze względu na bezpieczeń-
stwo kodu i integralność danych
rzadko jest pożądane, a dodatkowo
przyzwyczaja do niechlujności i bez-
pośredniej modyfikacji właściwości
innych obiektów z pominięciem odpo-
wiednich funkcji. Samo pisanie funkcji
pobierających i zmieniających właści-
wości obiektu również stało się bar-
dziej proste, gdyż teraz możliwe jest
zdefiniowanie metod
_get
i
_set
,
które pozwalają na odwoływanie się
do własności obiektu, tak jakby były
one publicznymi zmiennymi. Z pozo-
stałych zmian warto wspomnieć
o specjalnym drzewie klas implemen-
tujących iteratory. Dostępnych jest
wiele gotowych rodzajów iteracji,
w tym trawersacja po folderach dys-
kowych, ale nic nie stoi na przeszko-
dzie, by zaimplementować własne.
Ogromnym krokiem naprzód było
także dodanie w PHP5.1 długo oczeki-
wanego interfejsu PHP Data Objects.
W końcu możliwy jest przenośny, uni-
wersalny i – co najważniejsze – obiek-
towy dostęp do baz danych. PDO idzie
jednak o krok dalej i pozwala na trak-
towanie wszystkich systemów bazo-
danowych na równi. Wszystko jedno,
czy produkt podłączony jest do bazy
PostgreSQL czy SQLite.
n
PHP profesjonalnie:
programowanie obiektowe
i narzêdzia programisty
W tym miesiącu przedstawiamy wywiad z Patrykiem Zawadzkim,
który w sieci znany jest pod pseudonimem Patrys i pracuje jako
webdeveloper dla firmy Internet Center Polska.
WYWIAD
Patryk Zawadzki komputerami
pasjonuje się od dziecka,
a obecnie w firmie Internet Cen-
ter Polska zajmuje się m.in. sys-
temem CMS wego.pl. Jest rów-
nież współautorem opisywanej
kilka miesięcy temu witryny
http://www.10przykazan.com,
a pod adresem http://www.ro-
om-303.com/blog prowadzi
blog poświęcony szeroko poję-
tym standardom sieciowym.
W
EB
M
AS
TE
RIN
G
Â