PHPnin 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. PHPyi sadece ihtiyacınız olduğunda kullanın. Rasmus Lerdorf
Kimse PHPyi elbette onun yaratıcısından iyi bilemez. Rasmus Lerdorfun 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, PHPyi 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 PHPnin sınırlarını kabul etmiş olsa da unutulmaması gereken önemli bir nokta var ki; Geliştiricileri PHPyi daima geleceğe taşıyacaklardır.
İhtiyacınıza en iyi cevap veren aracı kullanmak en doğrusudur. Diğer yandan PHPnin 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 PHPden 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 MySQLde bir çok tablo kullanın. - Matt Mullenweg
Kimse Matt Mullenwegin PHP üzerindeki otoritesini sorgulamaya cesaret edemez. Dünyanın en popüler blog sistemi olan Wordpressi o geliştirdi (kuduz bir toplulukla birlikte).
Matt Wordpress.comu kurduktan sonra ücretsiz blog dağıtma sistemi olan Wordpress MUyu 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.comda 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 Mattin 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; İngilterede 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 PHPde iyi bilinen otoritelerden biridir. Pek çok geliştirici grubun, komitenin başkanlığını yapmaktadır. Aynı zamanda SitePointin 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 Cachelemek.
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 notepadden 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. PHPnin filtreleme işlevlerinden daha iyisini kullanın - Joey Sochacki
Joey, Matt kadar olmasa da oldukça iyi bir geliştirici olmakla beraber bilgisine Devolioda 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 Frameworkler 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...
PHPde 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ü frameworkler neyin nasıl yapılacağına sizin yerinize karar verirler. Bu da kötü kod yazmanızı "isteseniz bile" zorlaştıracaktır.
Frameworkler standartlaştırma için de iyidir.
8. Framework kullanmayın - Rasmus Lerdorf
Bir önceki maddeyle uyuşmadığının farkındayım ancak Rasmusun görüşü bu yönde. Tabii ki onun da sebepleri var.
PHP büyük bir dünyadır ve Frameworkler 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 Rasmusa göre en temel neden; Frameworkler iyi yazılmış salt bir PHPye göre yavaştır.
Rasmus, Drupalcon 2008 sunumunda "Merhaba Dünya!" örneğini PHP Frameworklerle 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, PHPnin gelişimine ve o dünyaya hiç de yabancı değildir. Prestijli IBM developerWorks için 30un ü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 Crondan 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 PHPnin arka plandaki Cron sürecine daha fazla önem veriyor. Bu amaçla da Cronun ç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