Merhabalar,
Uzun bir aradan sonra bir başka yazı ile karşınızdayım. Bu yazıda gündemim Zend. Sizlere Zend Framework’ün muhtemelen en çok kullanacağınız bileşeni olan Zend_Form ‘dan bahsedeğim. Zend_Form, kısaca Zend framework’ün sunduğu bir form yönetim bileşeni/sınıfı. Bu sınıf ile html koduna dokunmadan dinamik olarak formlar oluşturabilir, oluşturduğumuz formları filtrelerden geçirebilir validasyona tabi tutabiliriz.
Ben bu yazıda bu sınıfın 3 temel özelliğinden bahsedeceğim. Bunlar dinamik form üretimi, filtre ve validasyon.
Dinamik Form Üretmek
Normalde form tasarlarken input,select vb. form elemanlarını tasarım içinde html yazarak biz oluştururuz. Fakat Zend_Form, back-end tarafta yazdığımız kodlarla bütün formu yönetebilmemize olanak sağlıyor. Yani html kodunu kendisi üretiyor. Bu aslında tam olarak asp.net’in web forms elemanları gibi.
Peki bunu neden kullanmalıyız derseniz; Zend, kendi oluşturduğu bu form üzerinde tam kontrole sahip. Bu sayede kolay bir şekilde filtreleme ve validasyon işlemleri yapabiliriz. Ve söylemeliyimki Zend’in validasyon sınıfları derya deniz. Hemen her ihtiyacı karşılayacak fonksiyon mevcut. Temel olarak kullandığımız bu input boş mu, içindeki değer şu karakterden uzunmu vs. den tutun iban, kredi kartı, barkod kontrolüne kadar detaylı şekilde mevcut.
Ayrıca belirtmem gerekirki Zend_Validate ve Zend_Filter aslında ayrı sınıflar. Zend_Form olmadan da tek başlarına bu sınıfları kullanabilirsiniz. Fakat Zend_Form ile tam entegrasyona sahipler.
Formu dinamik olarak ürettiğimizde zend, form elemanlarını kendisi hizalıyor. Örnek bir çıktı aşağıda yer alıyor. Gördüğünüz gibi form elemanlarını dd tagları içerisine alıyor. Bunu yine kod tarafında değiştirmek mümkün fakat daha komplike tasarımlarda işiniz zorlaşacak.
Html ve Zend_Form
Zend_Form’un kendi ürettiği formları kullanmak zorunda değilsiniz. Dinamik olarak form üretmeye ihtiyacınız yoksa şu sayfada form değişsin şu elemanlar gelsin şunlar gelmesin vs talepleriniz yoksa normal html formunuzu kendiniz oluşturabilir Zend_Form’un diğer özelliklerinden fayfalanabilirsiniz.
Koda Geçelim
public function indexAction()
{
// bileşenimizi çağırıyoruz
$form = new Zend_Form;
//