Bir süredir PHP ile yazılmış eski bir uygulamayı güncellemeye ve ihtiyaçlarıma göre uyarlamaya çalışıyorum. Amacım özensiz bir şekilde yaptığım kodlamayı güvenlikli hale getirip (evet hiçbir güvenlik unsuruna yer vermemişim zamanında) kullanışlılığını artırmak.

Başlangıçta sil baştan başlamakla mevcut kodları değiştirmek arasında kararsız kalsam da daha kolayıma geldiği için kodları değiştirmekle işe başladım. Üzerinde çalıştığım üye kaydını, üye giriş-çıkışlarını gibi üyelik sistemini destekleyen, üyelerin ve kullanıcıların çeşitli metinler girebilecekleri girişlerin ve bunların görüntülendiği alanlarının bulunduğu basit bir içerik yönetim uygulaması aslında. Uygulamada üyelik sisteminin bulunması ve kullanıcıların veritabanına veri girişi yapabilmeleri kod yazarken normalden daha fazla bir özeni gerektiriyor haliyle; çünkü uygulamaya olası saldırılar en çok bu alanlardan gelecek. Bu saldırılara karşı bir miktar dayanıklılık sağlamak için girdi alınan bölümlerde, veritabanı kayıtlarında çeşitli önlemler almak gerekiyor.
PHP Framework
Nasıl yaparım nasıl ederim diye ararken kodlama yapmak isteyenlere olağanüstü olanaklar sağlayan, geliştiricinin yükünü büyük ölçüde hafifleten PHP Framework’lere (PHP iskeletleri diye çevirebilirim Türkçe karşılığını bilmiyorum) rastladım. PHP Framework nedir dersek, kabaca PHP ile bir uygulama oluşturmak istiyorsunuz (bu bir blog da olabilir bir haber sitesi de ya da şirketinizin sitesi de olabilir) önünüzde birkaç seçenek var ya joomla, wordpress, drupal gibi hazır kodları kullanacaksınız ve içeriğinizi, uygulamalarınızı bu kodlar üzerinde yeşerteceksiniz ya da oturup özgün uygulamanızı, sisteminizi yazacaksınız.
Pek tabi ki kolay olanı içerik yönetim sistemleri (CMS) ile çalışmak ancak her zaman bu hazır yazılımlar ihtiyaçlarınıza cevap veremeyebiliyor ya da siz özgün bir şeyler ortaya koymak isteyebiliyorsunuz. İşte böyle bir durumda PHP Framework’ler sizin için biçilmiş kaftan. Framework’ler uygulama geliştirirken ihtiyacınız olacak hemen hemen tüm alt yapıyı (seçtiğiniz Framework’e göre tabiî ki) size sunarak uygulama geliştirme sürecini kolaylaştırıp, hızlandırılar size de uygulamanızı geliştirmek için daha çok zaman kalır. Ayrıca bir çok kişi bu alt yapıları kullandığı için açıklar eksiklikler karşısında tek başınıza kalmazsınız. Yardım edecek, sizin görmediğinizi görecek birilerinin varlığı uygulama geliştirme sürecenizin daha sancısız geçmesine yardımcı olacaktır.

Model - View - Controller
PHP Framework’lerin en tanınmışlarını CakePHP, Akelos, CodeIgniter ve PRADO olarak sıralayabiliriz. Bu PHP Framework’leri geliştiricileri birçok kodlama zahmetinden kurtarıp, geliştiricilerin hızlı, istikrarlı ve güvenli kodlama yapabilmelerine olanak sağlarlar. Birkaç örnek vermek gerekirse Mozilla Addons, Scratch by MIT, Yale Daily News gibi siteler CakePHP ile; Model Management, Vimity, Lingus.tv gibi siteler ise Akelos PHP Framework ile güçlendirilmiştir. Burada bir kısmına yer verebildiğim Framework’ler daha çok Model–View–Controller (MVC) mimari yapısına dayanırlar. Model–View–Controller (MVC) mimarisinin yabancısı olduğum için açıkçası beni çok cezp etmediler. Ancak araştırmalarım sırasında Flourish adında bir PHP Framework’e daha rastladım. Flourish yukarıda değindiğim Framework’lerden farklı olarak Model–View–Controller (MVC) mimarisi kullanmayan kendi halinde küçük ve benim için uygulanabilir bir Framework olarak diğerlerinin arasından sıyrıldı. Diğer PHP Framewok’ler hakkında daha detaylı bilgiyi buradan temin edebilirsiniz.
