Plazma sayı 4, sayfa 74

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 74

PHP oldukça hızlı bir dildir. Dolayısıyla her tür kıyaslamada JavaScript/VBScript'e göre daha iyi sonuç verecektir. Ayrıca PHP yalnızca text output vermekle ilgilenir. İstemci tarafında çalışan diğer scripting dilleri browser'a bağımlı başka birçok nesneyle de ilgilenmek zorundadırlar. Fakat burada gelmeye çalıştığımız asıl nokta bu değil. Test ortamında kendi makineniz üzerinde çalışıyor olabilirsiniz. Ancak yaptığınız PHP programı/web sitesi yayına girdiği andan itibaren sunucu ve istemci aynı makine olmaktan çıkacaktır. Bu durumda istemcilerin makinelerinin değişken performanslarının sitenizin çalışma hızına etkisini minimuma indirmek için yukarıdaki gibi örneklerde PHP kullanmak çok daha mantıklı bir yöntem olacaktır. Zamanla PHP kullanmamızı mecburi kılacak veritabanıyla iletişim gibi konulara da geleceğiz. Ancak PHP kullanmamız zorunlu olmayan birçok durumda dahi PHP doğru seçim olacaktır.

Zaman hangi dili kullanmamız lazım?

Bu sorunun cevabını verebilmek için PHP'nin bize tam olarak ne sağladığını anlamak lazım. PHP, kendisine ait scriptleri sunucu tarafında çalıştırıp, bunlardan oluşturduğu sonuçlarla birlikte bir HTML çıktı üreterek istemciye yollar. Yani bir PHP sayfası çalıştıktan sonra browser'da "kaynağı görüntüle" (view source) seçeneği seçildiği zaman PHP kodlarını değil, bu kodların ürettiği sonuçlardan oluşmuş HTML kodlarını görürüz.

Bu iki anlama gelir.

PHP dili kaynak kodları istemciden bağlanan kişilerden korumak açısından güvenlidir. Sunucuya erişim yetkisi olmayan kişiler tarafından görüntülenmesi imkansızdır. (Hatta Zend firmasının uygulamaları ile sunucuya erişim yetkisi olan kişilerden de gizlenebilir). İstemci tarafında çalışan scripting dillerinin kodları ise açıktır, standart yöntemlerle gizlenemez.

PHP bütün işi sunucu tarafında yapar ve istemciye ulaştıktan sonra PHP'nin artık hiçbir fonksiyonu kalmamıştır. Bu yüzden PHP ile dinamik bir sayfa oluşturmak, browser'da olan olayları PHP'ye yeni bir sayfa yükletmeden göndermek, sonuçlarını almak mümkün değildir. AJAX ve benzeri yöntemler ile sayfa güncellenmeden PHP'den veri çekilebilir ancak yine istemci tarafında çalışan dillerin yardımına ihtiyaç vardır. Kısacası bu tür durumlarda JavaScript, VBScript gibi dillerin faydasını görmekteyiz. Bu diller browser'la ve HTML nesneleriyle doğrudan etkileşim içersindedirler. Yeni bir sayfa yükletmeden o sayfa içersindeki her şeyi kontrol edebilir, kullanıcı ile interaktif bir şekilde çalışabilirler.

Yani amacınız bir linke ya da butona tıklanınca o sayfa içersinde bir mesaj çıkartmak, bir resmin üzerine mouse ile gidince resmin değişmesi gibi konular ise PHP yanlış bir seçimdir. Ancak sayfa oluşturulurken veritabanından okunan değerlerin ekrana yazdırılması, HTML formlarından gönderilen verilerin veritabanına kaydedilmesi ya da sayfanın sabit kısımlarına (örneğin menü) her dosyada yer vermek ve güncellerken tüm dosyaları güncellemek yerine tek bir dosyadan yükletmek gibi amaçlarda PHP doğru seçim olacaktır.

Merhaba Dünya Örneği

Şekil 4.

Birçok dilde ilk öğrenilen şey ekrana nasıl yazı yazdırıldığıdır. Elbette ki PHP'de de bu çok önemli bir konudur ve şimdi bu konuyla ilgili detayları göreceğiz.

PHP'de bunu yapmanın birden fazla yolu mevcuttur. İlk olarak en temel yazı yazdırma örneğini görelim.

echo

<html> <head> <title>Sayfa Basligi</title> </head> <body> <?php echo "Merhaba Dünya"; ?> </body> </html>

"echo" komutu yazı yazdırmak için PHP'deki en genel ve en hızlı yöntemdir. Bu komut doğrudan PHP'nin çekirdeğinde yer alan bir komuttur. Hiçbir değer döndürmez. Bu fonksiyonu çağırırken parantez kullanmak gerekmez. Parantez kullanılmadığı durumda virgüllerle ayrılarak birden fazla parametre alabilir (bu parametrelerin değerlerini yan yana yazar).

Diğer alternatifler ise Basic'ten alışık olduğumuz "print" ve C'den alışık olduğumuz "printf" komutlarıdır. Bunlardan "print", "echo" ile büyük benzerlikler taşır. Hız olarak hemen hemen "echo" ile aynıdır. "print"in fazladan bir sonuç döndürdüğü düşünülecek olursa tespit edilmesi güç derecede "echo"dan daha yavaştır diyebiliriz. Ayrıca "echo" gibi birden fazla parametre alma özelliğine sahip değildir.

print

Klavyeyle gezinmek için ← ve → tuşları.