background image

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 

_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

Â