Validasi No Telepon menggunakan symfony validator

Ada artikel menarik mengenai validasi no telp, temen2 bisa baca disini. Apa sih yang perlu di validasi dari inputan no telp?. Digit!!!. Kita g peduli user mau nuliskannya seperti apa (yg jelas dalam format penulisan yg sesuai aturan lah), bisa (0123) 444-5555 atau 0123-444-5555 atau juga 01234445555. Dan digitnya (01234445555) itulah yang kita simpan ke database.
Kenapa perlu di validasi?. Katakanlah kita bikin aplikasi pengaduan berbasis sms. Setiap pengaduan dikirim ke nomor2 yang bersangkutan. Nah, bagaimana kalo user iseng meng-inputkan no telp asal2an, misal : afaf12121.. mmhhh.. jangan sampe deh. Setiap data yg masuk ke database, harus bener2 bersih, jangan sampe banyak data sampah2.
Bagaimana meng-implementasikan validasi tersebut kalo pake validatornya symfony?

<?php
class myValidatorPhoneNumber extends sfValidatorString
{
  const MAX_PHONE = 12;
  const MIN_PHONE = 6;

  protected function configure($options = array(), $messages = array())
  {
    parent::configure($options, $messages);
    $this->setOption('min_length', self::MIN_PHONE);
    $this->setOption('max_length', self::MAX_PHONE);
    $this->setMessage('max_length', 'Maksimal digit yang diperbolehkan adalah  '.self::MAX_PHONE);
    $this->setMessage('min_length', 'Minimal digit yang diperbolehkan adalah '.self::MIN_PHONE);
  }

  protected function doClean($value)
  {
    //remove non numeric characters
    $phone = preg_replace("/[^0-9]/", "", $value);
    return parent::doClean($phone);
  }
}

Dalam artikel yg saya sebutkan tadi, disana menggunakan ereg_replace, tapi saya disini menggunakan preg_replace. Kenapa? lebih jelasnya silahkan baca disini.

Gampang kan? hehe.. symfony emang nikmat pren!!!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: