|
5 DERSTE PHP ÖĞRENİN... PHP Öğrenmek Artık Çok
Kolay - 1

PHP'ye Giriş
C/C++, Pascal, hatta Visual Basic bilen kişiler
için PHP öğrenmek hemen hemen bir öğleden
sonrayı ayırmak suretiyle yapılabilecek bir
iştir. Bu dillere aşina olmayanlar ise belki bir
kaç öğleden sonralarını ayırmak zorunda
kalabilirler! PHP, bir Script dilidir; yani
kodları düz yazı dosyaları halinde kaydedilir ve
kullanılacağı ortamda bir yorumlayıcı tarafından
yorumlanır. Bu, PHP ile yazacağınız programları,
derlemek yani ortaya bir EXE veya
çalıştırılabilir başka bir dosya çıkartmaya
gerek olmadığı anlamına gelir. Fakat PHP
Script'lerinizi çalıştırabilmek için bu dili
bilen bir programa ihtiyacınız vardır. Bu
programın tek başına (komut istemci penceresinde
veya terminal ekranında) çalışması mümkün olduğu
gibi, Web Server tarafından da çalıştırılabilir
olması gerekir. Başka bir deyişle Web Sunucu
programının PHP anlar hale getirilmesini
sağlamak zorundayız.
PHP yorumcusu, bugün Zend-çekirdeği adı verilen
bir Scripting teknolojine dayalı olarak, Zeev
Suraski ile Andi Gutmans tarafından sıfırdan,
tamamen yeniden yazılmış bulunuyor. Zend, tıpkı
Windows Script Host ve mesela Visual Basic for
Applications (VBA) gibi, işletim sistemine
kendisi ile uyumlu Script dilleriyle yazılmış
programları çalıştırma imkanı kazandıran bir
teknolojidir (Zend konusunda ek bilgiyi
Internet'te www.zend.com adresinde
bulabilirsiniz.) Bugün bu dilin resmî adı "PHP:
Hypertext Preprocessor" (Hiper-metin
ön-işlemcisi) olarak değiştirildi, ve çeşitli
Web Server'ların PHP dili anlaması için gerekli
yorumlayıcıları yeniden üretlidi. 20 Ocak 200'de
İsrail'de PHP'nin ilk uluslararası konferansı
yapıldı ve 4'ncü sürümünün betası ortaya kondu.
Peki ama PHP nedir?
PHP ile artık oturup her türlü işlevselliği
sahip programlar yazabilirsiniz; yani PHP başlı
başına uygulama alanları bulabilecek düzeye
ulaşmıştır. Başka bir deyişle PHP ile oyun
programından tutun veritabanı yönetimine kadar
hemen her türlü programı yazabilirsiniz. Bizi bu
kitapçıkta ilgilendiren tarafıyla PHP, Web
Sunucu'ya bir takım işler yaptırmak için program
yazma dilidir. Tıpkı CGI/Perl veya ASP ya da
ColdFusion, Java (Javascript değil!) gibi! PHP
kodları, oluşturacağımız HTML sayfalarında HTML
etiketlerinin arasında kendi özel ayracı içinde
yazılır:
<html>
<?PHP
echo ("Merhaba Dünya!");
?>
</html>

İster kişisel bilgisayarımızda, ister gerçek
Internet ortamında olsun, bir Web Sunucu,
ziyaretçinin (Internet istemci programının,
Browser'ın) talep ettiği dosya adının uzatması
olarak ".PHP," ".PHP2," ".PHP3," veya ".PHP4"
görünce, kendine kendine, "Yine bana iş çıktı!"
diye düşünür! Çünkü Web Server, uzatması ".htm"
veya ".html" olan bir dosyayı, kendi sabit
disklerinden birinde bulur ve zahmetsizce,
ziyaretçinin bilgisayarına gönderir. Fakat, ".asp,"
.pl," ".cfm" gibi, ".PHP" uzatması, Web
Sunucu'ya bu sayfayı olduğu gibi, alıp
ziyaretçinin Browser'ına göndermek yerine, önce
PHP yorumlayıcıyı çağırarak, ona teslim etmesi
gerektiğini bildirir. PHP yorumlayıcısı (yani
Windows ortamında PHP.exe veya 4'ncü sürümle
gelen PHP4isapi.dll, Unix ve türevlerinde
çalıştırılabilir PHP dosyası), kendisine teslim
edilen bu belgede önce "<?PHP" ve "?>" ayraçları
arasındaki PHP kodlarını seçerek alır ve gereği
ne ise onu yapar. Bu ayraçların içinde kalan
kodlar, bizim yapılmasını istediğimiz işlemin
komutlarıdır. HTML ile yetinmeyip, PHP
kullanmamızın sebebi, bu komutların HTML'in
yapayacağı şeyleri yapmasıdır.
HTML'in yapamayacağı şeylerin başında, Web
Sunucusu'nda yapılacak işler vardır. Sözgelimi
HTML etiketlerini kullanarak, Web Sunucusu'ndaki
bir veritabanı dosyasını açıp, içindeki verileri
okuyamayız. HTML yoluyla Web Sunucusu'nun sabit
disklerindeki düz yazı dosyalarını da okuyamayız
ve bu disklere dosya yazamayız. HTML etiketleri
ile Web ziyaretçimizden bilgi edinebilir ve
bunları Sunucu'ya yollayabiliriz; ama o kadar!
Bu bilgileri işe yarar şekle sokmak için bize
Server'da çalışan bir program gerekir. Server'da
çalışan program, EXE ve DLL veya JSP (Java
Server Pages) gibi bir "gerçek program"; veya
Perl, ASP ve PHP gibi Script diliyle yazılmış
bir program olabilir. (Gerçek programları
yazanlar, tabiî, sizin Script diliyle yazılmış
programlara "program" demenize çok kızarlar! Ama
bu Script pogramlarının program olmasını hiç
engellemez.)
Ne diyorduk? Web Sunucu, ".PHP" uzatmasını
görünce telaşa kapılır, bu dosyayı PHP
yorumlayıcısına verir ve o da "<?PHP" ve "?>"
ayraçları içindeki kodları icra eder, demiştik.
Bu icraatın sonunda ortaya çıkan ürün eğer
ziyaretçiye gönderilecekse, HTML etiketleri
içinde gönderilir; yani ziyaretçi asla PHP
kodlarını göremez. Kimi zaman PHP programımızın
çalışması sonucu ortaya ziyaretçiye gönderilecek
bir ürün çıkmaz; elde edilen sonuç ya başka bir
programa (örneğin elektronik ileti gönderen bir
Sendmail progamına) hammadde olarak verilir, ya
da Server'da sabit diske yazılır. Fakat her
durumda, Web ziyaretçimiz bizim PHP kodlarımızı
göremez; bu Web sayfalarımızda PHP kodu
kullanmamız halinde, sayfalarımızın Browser
tarafından tanınması veya tanınmaması gibi bir
durumun ortaya çıkmaması demektir. Ziyaretçi ne
tür Browser kullanırsa kullansın, kendisine
Sunucu'dan daima saf HTML kodu geleceği için,
sayfalarımızı rahatça görebilecektir. Tabiî bir
nokta var: Sayfalarımızda herhangi bir
Browser'ın arızalı yorumladığı veya hiç
yorumlayamadığı HTML etiketleri bulunabilir; ya
da söz gelimi ziyaretçiye giden HTML'in içinde
Browser'da çalıştırılacak olan başka Script
kodları bulunabilir; ve Browser bu kodları
anlamayabilir. Örneğin, HTML sayfanızda VBScript
kodları kullanmış iseniz, Netscape ile sitenize
bağlanmış olan kişiler bu kodun oluşturmasını
istediğiniz etkiyi göremeyeceklerdir; çünkü
Netscape VBScript anlamaz! PHP ile yazacağınız
Web programlarının (eski deyimiyle "sayfaların")
oluşturacağı HTML belgesinin Browser türleri ve
sürümleri ile uyarlılığını sağlamak yine Web
programcısı olarak sizin sorumluluğunuzdadır.
Özetlersek, PHP bir CGI programlama dilidir; bu
dille, Web Sunucusu ile Web ziyaretçisi
arasındaki buluşma noktası olan CGI'da bilgi
alışverişi yapılabilir; Sunucu'da bulunan başka
programlar çalıştırılabilir ve böylece Web
sayfalarımıza HTML'in sınırlamalarının ötesinde
hareket ve ziyaretçi ile etkileşme olanağı
kazandırılabilir.
Sanırım iyi bir Web programcısı olarak şu anda
ekrana "Merhaba Dünya!" yazdırmak için
sabırsızlanıyorsunuz. Ama bunun için, PHP
sayfanızı ya PHP-uyumlu bir Web Sunucusu'ndaki
Web sitenize yüklemek, ya da kişisel
bilgisayarınızdaki kişişel Web Sunucusu'na PHP
öğretmek zorundasınız. Bu ikinci yöntemi
kuvvetle tavsiye ederim; çünkü yazacağınız PHP
programlarını gerçek Internet Sunucusunda
sınamak, bazen arzu edilmeyen durumlara yol
açabilir. Oysa kişinin bu denemeleri, evinde ve
işyerinde kendi bilgisayarında yapması, çoğu
zaman daha az başağrısı ve gözyaşına yol açar!
En azından, PHP hatalarınızı ve gözyaşlarınızı
sizden başka gören olmaz!
PHP ve Veritabanı
Kişisel bilgisayarınızdaki kişisel Web
sunucusuna PHP öğretme işlemine geçmeden önce,
hemen hemen PHP'nin ikiz kardeşi sayılan
MySQL'den ve onun rakibi PostgreSQL'den kısaca
söz edelim.
PHP'nin varlık sebeplerinin başında, ticarî Unix
ve Microsoft Windows işletim sistemlerinden
ayrı, ticarî olmayan Açık Sistem ortamlarında
çalışan bir Script dili ile bu dille
kullanılabilecek yine Açık Sistem ürünü bir
veritabanı erişim ve yönetim aracına sahip olmak
gelir. Perl, gerçi PHP'den çok önce Açık Sistem
ürünü olarak, isteyen Web Programcısı'nın
ücretsiz edineceği bir CGI programlama dili
olarak Web'in ilk gününden beri Web
Programcısının emrinde idi. Ama Perl, metin
dosyalarından yazı çekmek ve bunları
biçimlendirerek rapor haline getirmek amacıyla
geliştirilen bir dil olduğu için, özellikle
veritabanına dayalı işlemlerde programcıya çok
güçlük çıkartıyordu. ASP ise (ASP desteği
sağlayan ve ücretsiz Web sitesi veren firmaların
giderek artmasına ve veritabanı konusunda hem
kolaylık, hem de büyük bir etkinlik sağlamasına
rağmen) çoğunlukla ücretli Web sitesi aldığımız
ticarî amaçlı evsahibi (Hosting) firmalarının
sağladığı bir teknoloji olarak görüldü. PHP,
tasarımcılarının MySQL ve PostgreSQL
teknolojilerini geliştiren kurum ve firmalarla
yaptığı yakın işbirliği sonucu ikinci sürümünden
itibaren veri-yönlendirmeli Web uygulaması
alanında önemli bir araç olarak belirdi.
Dolayısıyla, PHP kurulumu dendiği zaman,
kendiliğinden, MySQL kurulumu da kastedilmiş
olur. Şimdi PostgreSQL da ekleyebiliriz.
PHP, bir dildir; MySQL ve PostgreSQL ise bir
demet sürücüdür. PHP ile, Web Server'a sayfanızı
Internet ziyaretçisine göndermeden önce bir
takım komutları icra etmesini, bir takım veri
dosyalarını açıp içindeki bilgileri alıp bunları
HTML kodlarıyla bezeyip, Browser'a bildiğimiz
klasik HTML sayfası olarak göndermesi talimatını
veririz. MySQL ve PostgreSQL ise, Windows
sistemlerinde Denetim Masası'nda gördüğünüz ODBC
Veri Kaynağı Yönetmeni adlı araç gibi, bir
vertabanı sunucusu, yani Database Server
pprogramlarıdır. Yakın zamana kadar bu iki
veritabanı yönetim aracı arasında fazla bir
çekişme yoktu. Ancak şimdi özellikle Linux
kullanıcıları topluluklarında iki program
arasında verimlilik testleri yapılıyor;
hangisinin daha iyi olduğnuna ilişkin yoğun bir
tartışma sürüyor. PHPBuilder.com uzmanları,
yaptıkları bir çok denemede, MySQL'in daha hızlı
ve daha etkin çalıştıkları sonucuna varıyorlar.
(Bu konuda daha geniş bilgi edinmek için
Internet'te www://PHPbuilder.com/columns/tim20000705.PHP3
adresine bakabilirsiniz.)
MySQL, bir kullanıcı lisansı 200 Dolar olan
ticarî bir program iken 2000 yılı ortalarında
GPL (GNU General Public License/GNU Kamusal
Lisans) uygulamasına geçmiş ve ücretsiz dağtılır
hale gelmiş bulunuyor. Buna göre MySQL'i bir
ticarî uygulamanın içinde motor olarak
kullanacaksanız üreteci firmaya lisans ücreti
ödemeniz gerekir; bunun dışındaki uygulamalar
için programı Internet'ten indirerek
kullanabilirsiniz. PHP için MySQL'e gerek
yoktur. PHP, bir NT veya Win9x tabanlı Web
Server'da çalıştırılıyorsa, Microsoft'un ODBC
sürücüleri ile çalışabilir; ve ODBC'nin okuduğu
bütün veritabanlarından veri çekebilir.
(ODBC'nin Unix-Linux sürümü de vardır.) Ayrıca
PHP için Adabas, dBase, Empress, FilePro,
Informix, InterBase, mSQL, Oracle, Solid, Sybase,
Velocis ve bir çok Unix veritabanı yöneticisi
için geliştirilmiş add-on (sonradan eklenen)
modüller vardır. PHP, bir çok LDAP istemci
programı için yazılmış API'lere de sahiptir. PHP
ile IMAP, SMTP gibi Internet elektronik mektup
protokollerini kullanmak da mümkündür.
Biz bu kitapçıkta örneklerimizde ve
uygulamalarımızıda MySQ'den yararlanacağız. PHP-MySQL
ikilisini kişisel bilgisayarımıza kurmak için
önce gerekli programları Internet'ten indirmemiz
gerekir. Bunun için şu adreslerden
yararlanabilirsiniz:
http://www.PHP.net/downloads.PHP
http://www.mysql.com/downloads/index.html
PHP ve Web Sunucusu
Bizim açımızdan PHP, bir Web sunucu programıdır;
kurulacağı sistemdeki Web sunucusu ile uyumlu
olması gerekir. 4'ncü sürümü itibariyle, PHP
bütün Unix-türevi sistemler (örneğin Linux) ve
Microsoft Windows sistemleri ile uyumludur.
Birlikte çalışabileceği Web sunucu programları
arasında Apache, IIS, FHTTP, Omni HTTPd, Xitami
ve Windows 95/98 için PWS (Personal Web Server)
vardır. Gerçek Internet ortamında sunucu
programlara PHP yeteneği kazandırma işlemi, Web
Pnogramcısı olarak bizi ilgilendirmez; bizim
için Internet sitemize evsahipliği yapan Hosting
firmasının PHP desteği verip vermediğini bilmek
yeter. Fakat tasarımlarımızı sınayabilmek için
kendi bilgisayarımıza bir kişisel Web Server
kurmak ve bu programı PHP-uyumlu hale getirmek
gerekir. Burada sadece iki örnek ele alacağız:
Linux için Apache sunucu programı ve MS-Windows
için PWS. Bu iki programdan hangisi sizin
sisteminize uygunsa onu kendi bilgisayarınıza
kuracağınızı varsayarak, şimdi PHP ve MySQL
kurulumu ile uğraşabiliriz.

|