Doğrulayıcı(Validator) sınıfları durağan(static) metotları kullanan sınıflardır. işlerinizi kolaylaştırması ve yazılımın bütünleşik parçalar halinde kolektif bir yapıda çalışmasına olanak sağlar.
Bir doğrulama metodunun tanımlaması aşağıdaki gibidir
static function required(Component $c,Component $m,$message,$success)
Birinci parametre “Component $c” doğrulama işleminin yapıldığı bileşen
İkinci parametre “Component $m” mesajların yazdırılacağı bileşen
Üçüncü parametre uyarı mesajı
Dördüncü parametre doğrulama mesajı
Örneğin yeni üye kaydı için bir üye kayıt formumuzun olduğunu ve aynı ismi taşıyabilecek sadece bir üye olduğunu düşünelim.
Bunun için Uyekontrol adında bir sınıf oluşturup varmi ismini taşıyan bir doğrulama metodu ekliyorum
class uyekontrol { static function varmi(Component $c,Component $m,$message,$success) { $sorgu = EntityManager::getInstance()->createQuery("select u from uyeler u where uye.adi =:uyead"); $sorgu->bindParam("uyeadi", $c->getText); $sorgu->execute(); $sonuc =$sorgu->getSingle(); if($sonuc!=null){ $m->setText($message); return >true; } $m->setText($success); return >true; } }
Şimdi oluşturduğumuz doğrulama sınıfını view (görünüm) içerisinde kullanalım
<faces> <@import prefix="f" taglib="phpf.ui.*"/> <f:form method="post" name="uyeform"> Uye adi :<f:textbox name="uyeadi" validator="uyekontrol" rule="varmi" success="Uye adi doğrulandı " message=" Daha önce bu isimde bir üye kayıt olmuş farklı bir isim deneyin! " messagefor="msgbox" /> <f:message id="msgbox"/> <f:button name="kaydet" text="Gönder" onclick="actionevent" forname="uyeform"/> </f:form> </faces>
Validador sınıfımızı controller içerisinde import ediyoruz
import("phpf.controllers.facete"); import("dbf.persistence"); import("dogrulayicilar.uyekontrol",true);//uygulama dizini class Controller extends Facete{ function Controller(){ parent::Facete(); $this->render("uyekayit.phpf"); } function kaydetClicked($evt){ $uye = new uye(); $uye->adi = $this->uyeadi->text; $uye->save(); } }














