PHP’nin yaygın kütüphane ve dökümanlarıyla, neye ihtiyacımız varsa yapmak oldukça kolay ancak ne yazık ki "iyi uygulama" yazmak konusunda yeterli değiliz. Bunun esas sebebi elbette nasıl bir yapıda olduğu, ne yazdığımız değil; ne işe yaradığıyla ilgilenmemiz. Bu konuda kendimi geliştirebilmek için de elbette PHP konusunda gerçekten tecrübeli ve kaynaklara ihtiyacımız var. Bize PHP dünyasında rahatlıkla dolaşabilen ve tüm ortam şartlarını ustalıkla kullanabilen PHP ustalarının prensipleri gerek...
1. PHP’yi sadece ihtiyacınız olduğunda kullanın. – Rasmus Lerdorf
Kimse PHP’yi elbette onun yaratıcısından iyi bilemez. Rasmus Lerdorf’un 1995 yılında ortaya koyduğu PHP, o zamandan günümüze mükemmel bir hızla ve güçle yayıldı. Geliştiricileri ve topluluğu gerçekten çok büyük. Buna rağmen Rasmus, PHP’yi bunun için yazmamıştı. PHP web geliştirme ihtiyacının dışındaki sorunları çözmek için oluşturulmuştu.
Yine de Lerdorf ilk defa itiraf etti ki; "Her şey için PHP kullanamazsınız". Bu sözüyle PHP’nin sınırlarını kabul etmiş olsa da unutulmaması gereken önemli bir nokta var ki; Geliştiricileri PHP’yi daima geleceğe taşıyacaklardır.
İhtiyacınıza en iyi cevap veren aracı kullanmak en doğrusudur. Diğer yandan PHP’nin diğer pek çok dille kardeş kardeş kullanılabilmesi de apayrı bir güzellik... Size ne gerekiyorsa onu kullanın. PHP kullanacağım diye büyük yüklerin altına girmek saçma olur. Bir şeyi PHP’den daha iyi yapabilecek bir şey varsa; onunla yapın. -Bu biraz da meydan okuma gibi oldu sanki- Diğer dilleri kullanmaktan korkmayın.
2. Ölçeklenebilirlik için PHP ve MySQL’de bir çok tablo kullanın. - Matt Mullenweg
Kimse Matt Mullenweg’in PHP üzerindeki otoritesini sorgulamaya cesaret edemez. Dünyanın en popüler blog sistemi olan Wordpress’i o geliştirdi (kuduz bir toplulukla birlikte).
Matt Wordpress.com’u kurduktan sonra ücretsiz blog dağıtma sistemi olan Wordpress MU’yu kodladı ve insanların çoklu blog sahibi olmalarını başka bir deyişle blog dağıtabilmelerini sağladı. Üstelik bunu tamamen ücretsiz yaptı.
Bu gün Wordpress.com’da 4 milyondan fazla blog barınmaktadır. Kullanıcıları günde 140.000 den fazla mesaj yazmaktadır. Bu, sıradan bir bilgiyle yapılabilecek bir sistem değil.
Önceleri kimse Matt’in neden çoklu tablo kullandığına anlam veremedi. Alışılagelmişin aksine bir şeydi bu ancak sonraları görülüyor ki; bu denli büyük bir sistem için daha iyisi düşünülemezdi. Bu sayede tüm sistemler, database farklı sunuculara bölünse bile çalışmalarını sürdürürken sorun çıkarmayacak hale gelebiliyordu.
Wordpress.com ve Facebook gibi siteler göstermiştir ki; PHP "inanılmaz" trafik yüklerini kaldırabilecek güçtedir.
3. Asla ama asla kullanıcılarına güvenme - Dave Child
Dave; İngiltere’de birçok geliştirme şirketleri için çalıştı. Programlama dünyasında bir otorite olarak kendini kanıtlamıştır.
Kod yazarken paranoyak olmanın önemi ve gerekliliği üzerinde duran Dave; kesinlikle kullanıcılara güvenilmemesini ve gönderilen her verinin, bilginin; kontrolden geçmesini savunmuştur.
4. PHP Cache sistemlerine yatırım yapın - Ben Balbo
Ben de en az diğerleri gibi PHP’de iyi bilinen otoritelerden biridir. Pek çok geliştirici grubun, komitenin başkanlığını yapmaktadır. Aynı zamanda SitePoint’in yazarıdır.
Statik web siteleri bir yana kullanıcıya göre şekillenen E-ticaret ve özel portal gibi sistemler sunucu kaynaklarını çok fazla tüketmektedir. Bu sebepten de cache sistemlerinin gerekliliği yadsınamaz. Bu sistemler kesinlikle sisteminizi hızlandıracak ve bunun yanısıra da kaynak tüketimini büyük oranda azaltacaktır.
Ön belleğe almanın pek çok şekli vardır.
-Cache edilmiş fonksiyonları çağırmak
-Expiry Headers kullanmak
-Cache edilmiş sayfaların sisteme gönderilmesi
-Tema Cache’lemek.
ve tabii ki daha fazlası...
PHP gibi dinamik dillerin doğası nedeniyle, önbelleğe alma ve sık erişilen ve genellikle değişmez sayfaya ait parçaların doğru şekilde saklanması çok önemlidir.
5. IDE, Şablonlar ve Snippets ile PHP Geliştirme hızlandırın - Chad Kieffer
Chad gibi bütüncül yaklaşımlara sahip ve pek çok proje geliştiren ya da yöneten insanların maalesef zamanları olmaz. Bu sebeple onlara ayak bağı olmaktansa onların işlerini kolaylaştıracak, kesinlikle hızlandıracak araçlara ihtiyaç duyarlar. Bu gibi gözü kapalı PHP kodlayabilen insanların notepad’den daha fazlasına ihtiyaçları vardır. Çünkü konu artık kod yazmak değil; hayatı kodlara dökmektir. Chad, başarılı bir IDE ile gerçekten işlerin hızlanabileceğine inanıyor. Tercihen kendisi Eclipse IDE kullanıyor.
-Ben Netbeans tercih ediyorum-
6. PHP’nin filtreleme işlevlerinden daha iyisini kullanın - Joey Sochacki
Joey, Matt kadar olmasa da oldukça iyi bir geliştirici olmakla beraber bilgisine Devolio’da hayat vermektedir. Devolio sayesinde oldukça uzun bir yol kat etti ve tecrübeler edindi.
Mevcut filtreler bir yana, o kendi filtrelerini oluşturmayı ve kullanmayı daha cazip buldu. Veri filtrelemenin önemine değinerek URL, Email adresleri, IP adresleri gibi pek çok veriyi filtrelemenin kolaylığı üzerinde durdu.
7. Bir Framework kullanın - Josh Sharp
Zend, CakePHP, Code Igniter ve dahası... Josh; herhangi bir framework ile çalışılması gerektiğine inanıyor. Çünkü PHP onun söylemiyle öğrenilmesi çok kolay bir dil. Her gereksinime göre Framework’ler vardır. Hepsinin artı ve eksi yönleri var ancak Josh, ne olursa olsun bir framework kullanılarak işlerin daha hızlı ve işlevsel hale getirilmesinden yana...
PHP’de kısıtlamalar çok az olduğundan ve bir şeyin çoğu zaman bir kaç yolu olduğundan kötü kod yazmak oldukça kolay. Bunun için bir çözüm var. O da "Framework kullanımı" çünkü framework’ler neyin nasıl yapılacağına sizin yerinize karar verirler. Bu da kötü kod yazmanızı "isteseniz bile" zorlaştıracaktır.
Framework’ler standartlaştırma için de iyidir.
8. Framework kullanmayın - Rasmus Lerdorf
Bir önceki maddeyle uyuşmadığının farkındayım ancak Rasmus’un görüşü bu yönde. Tabii ki onun da sebepleri var.
PHP büyük bir dünyadır ve Framework’ler bu dünyada yalnızca bir çerçevedir. Sizin işlerinizi kolaylaştırırken bir yandan da sizi kısıtlarlar. Bu koca bir dünyaya çerçeveyle bakmaktan farksızdır. Tabii Rasmus’a göre en temel neden; Framework’ler iyi yazılmış salt bir PHP’ye göre yavaştır.
Rasmus, Drupalcon 2008 sunumunda "Merhaba Dünya!" örneğini PHP Framework’lerle karşılaştırdı ve görüldü ki; en hızlısı yine salt PHP.
Yine de Rasmus diyor ki; "İlla bir framework kullanmak zorundaysanız Code Igniter kullanın, en azından iyi bir çerçevedir."
-Ben de Code Igniter’ı tercih edenlerdenim-
9. Toplu işleme kullanın - Jack D. Herrington
Jack Herrington, PHP’nin gelişimine ve o dünyaya hiç de yabancı değildir. Prestijli IBM developerWorks için 30’un üzerinde makale yazmıştır. "PHP Hacks" gibi kitapların da yazarıdır. Jack iyi niyetli bir uzmandır.
Jack, işlerin arka planda toplu olarak yürütülmesinden ve Cron’dan yanadır. Web kullanıcıları, Web üzerindeki işlerin tamamlanması için uzun süre beklemek istemezler. Bu yüzden uzun sürecek işlerin, arka planda yürütülmesi daha uygundur.
Cron, MySQL, standard object-oriented PHP ve Pear:

B bunlara örnek verilebilir. Jack, MySQL ve PHP’nin arka plandaki Cron sürecine daha fazla önem veriyor. Bu amaçla da Cron’un çeşitli kombinasyonlarını kullanıyor.
Konuyla ilgili olarak şu sözleri söylemiştir; "Ben de yaptım, ben cron "Keep It Simple, Stupid" (KISS) ilkesinin avantaj olduğunu düşünüyorum. Arka planda işlemleri basit tutun. Böylece daha az şeyi dert edinirsiniz."
10. Hata raporlamayı hemen açın - David Cummings
David Cummings, içerik yönetim sistemleri konusunda uzmanlaşmış, kendi yazılım şirketi çalışan, birçok ödül kazanmış bir PHP ustasıdır.
Hata gizlemenin beklenmedik durumlar için çok iyi olacağını o da biliyor ancak bunun tüm hataların giderilmesinden sonra yapılması gerektiğini savunuyor. Gelişigüzel kodlamalarda, değişken tanımlamalarda pek çok hata vardır. Bunlar sistemi yorar. Hata raporlama kapalı olduğunda bu hataları görmeyiz. Çünkü sistemin çalışmasına engel değildir. Sistem bir şekilde ufak çaplı hataları göz ardı edebilir ancak bu hataların tamamen giderilmesi her zaman daha iyidir.
Berkant AYDIN