CodeIgniter 1.7.0 versiyonu ile en önemli değişikliğini yeni yazılan form_validation kütüphanesi ile yapmıştır. Bugüne kadar kullandığımız validation kütüphanesi yerine, yine kullanıcının isterse yükleyeceği "form_validation" kütüphanesini bu versiyona eklemiştir.
Form_validation kütüphanesi, validation kütüphanesine benzese de bazı açılardan farklı işleyişler getirmişler. Değişikleri görmek için öncelikle kütüphaneyi yüklememiz gerekiyor.
$this->load->library('form_validation');
Eskisinde "rule" ve "field" ismi ile farklı iki dizinde tanımladığımız değişken değerlerini bu kütüphane ile tek bir dizin içine birleştirmişler:
//set_rules methodu ile değişken-adı, değişkenin tanımı ile validasyon kuralı tanımlanmalı
$this->form_validation->set_rules('username', 'Kullanıcı adı', 'trim|required');
Bu tek cümle ile validasyon yapılması istenilen değişen tanımı yapıldıktan sonra, form_validation doğruluğu kontrol edilir. set_rules ile tanımlanan kurallarda eğer gerekiyorsa callback (özel tanımlı kurallar) kuralları da sorgulanabilir.
//validation çalıştırılır
if ($this->form_validation->run() == FALSE)
{
$this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}
CodeIgniter 1.7.0'da yeni form_validation kütüphanesi ile dizi değişkenlerinin kural kontrolü de artık daha basit olarak yapılıyor. Yeni kütüphanenin eskisine oranla değişen en büyük özelliği, validasyon sonrasında alınan hata mesajlarının ekrana yansıtılmasında yatıyor. Eski halinde validasyon sonucunda geri gelen mesajı $this->validation->error_string değişkeni ile alırken, yeni kütüphanede bu değişkenin yerini form_error() ya da validation_errors() metodları almıştır. İşin püf noktası, bu metodlar sadece view elemanlarında çalışmaktadır. Eğer yine controller elemanları içinden eski usul, değişken aktarmak istiyorsanız o zaman kullanmanız gereken değişken $this->form_validation->_error_array değişkenidir. Bu değişken bir dizi olarak hatayı ekrana getirecektir.
Bunun dışında yeni kütüphane ile birlikte $config değişkenine dizi olarak da değişken tanımı yapılabiliecek:
$config = array( array( 'field' => 'username', 'label' => 'Username', 'rules' => 'required' ), array( 'field' => 'password', 'label' => 'Password', 'rules' => 'required' ), array( 'field' => 'passconf', 'label' => 'Password Confirmation', 'rules' => 'required' ), array( 'field' => 'email', 'label' => 'Email', 'rules' => 'required' ) );Bu diziyi kullanılan sınıf ve metod adları kullanılarak da daha özel hale gitirilebilir. Örneğin, member controller elemanının içinde bulunan signup metodunun validasyon ayar dizisini şöyle de yazabiliriz:
$config = array(
'member/signup' = array(
array(
'field' => 'username',
'label' => 'Username',
'rules' => 'required'
),
array(
'field' => 'password',
'label' => 'Password',
'rules' => 'required'
),
array(
'field' => 'passconf',
'label' => 'PasswordConfirmation',
'rules' => 'required'
),
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'required'
)
)
);
Yeni özelliklerinin yanı sıra, yeni validasyon kütüphanesi eskilerinde yer alan hataların da düzeltildiği bir kütüphane olması nedeniyle, tüm kullanıcıların yeni versiyona geçmesini öneririm.
Permalink | Yazarı : Fatih BAZMAN | Yorum Ekle | Etiketler : Validasyon kütüphane 1.7.0 Yenilikler
Türkiye