edit: Vigo'nun postunu görmeden attım bu postu, belirteyim.
@ssg: Açıkçası kullanmadan ve "bu $ ne böyle? çüş . operatörüyle toplama mı yapılırmış?" diye bakarak elbette ki PHP hakkında sağlam bir değerlendirme yapmak olanaklı değil. şu kadarını söyleyebilirim, şu ana kadar PHP ile her ne yapmak istediysem acayip kolay bir şekilde yapabildim. Hem de gerçekten fazlasıyla kolay... Bunun tek sebebi dilin yapısı değil, arkasında bulunan zilyon tane destekçisinden geliyor.
PHP ile LDAP, Active Directory'e bağlanmak mı gerekiyor? PHP'nin zaten php_ldap.dll extension'ı mevcut. Active Directory'e bağlanabilemek için 3-5 satır fazladan kod mu yazmak gerekiyor? Birileri çoktan bir php_ldap.dll kullanan Active Directory classını yazmış.
Bu basit bir örnekti sadece. Benzer şekilde PHP ile captcha image oluşturmak gibi birşey için de mükemmel grafik libraryleri mevcut (php_gd2.dll gibi). Ben bunu Commodore 64 grafik dosyalarını PNG olarak render eden bir kod için kullandım mesela. Bkz:
http://noname.c64.org/csdb/release/?id=70285
PHP'nin en güçlü bulduğum yönlerinden birisi de string, array fonksiyonu türü özellikleridir. Mesela bir array oluşturup array_walk komutuyla array'in tüm elemanlarına tek tek uygulanacak bir fonksiyon belirtebilirsin (foreach gibi birşeye gerek kalmaksızın) ya da array'ler üzerinde kolayca push, pop v.s. yapabilirsin. ışin detayına girince görüyorsun ki "ulan adamlar ne varsa yapmışlar" ve sen sadece hazır 3-5 fonksiyon çağırıyorsun hepsi bu. Ayrıca PHP'nin source codeları incelendiğinde bu çağrılan fonksiyonların ne derece optimize olduğu da açıkça görülüyor (ben meraktan birkaç tanesini inceleyip tebrik etmiştim arkadaşları).
Diğer bir konu ise PHP'deki değişkenlerin variant mantığında olması. Elbette ki bu istenilen OOP yapının kurulmasında, özellikle method/property oluşturmanın anlamının azalması gibi şeylere yol açsa da diğer taraftan casting işlemleriyle uğraşmamak da çok kolaylık sağlayabiliyor. String olarak tanımlanan bir değişkene 1 eklendiğinde integer'a otomatik cast edilirken ekrana yazdırmak istenildiğinde tekrar string'e otomatik cast edilebiliyor. Bununla ilgili oluşabilecek performans problemlerinin hepsinin de workaroundları mevcut bu arada. Hız endişesi olan projelerde (%1) bu tür problemler aşılabilirken diğer projelerde (%99) inanılmaz kullanışlı bir özellik olarak göze çarpıyor bu.
PHP'nin en büyük derdi nedir? PHP 6'nın henüz çıkmamış olmasıdır 🙂 PHP 6'da herşey tam istediğim gibi olacak. PHP 5'de şimdiden namespaceler falan eklendi. Yavaş yavaş istediğim yapıya doğru ilerliyor...