RadPHP XEでZend_Validateを使ってみる。

RadPHP XEにはZend Frameworkが同封されています。

RadPHPからZend Frameworkのデータ検証用コンポーネント Zend_Validate を使用してみます。

必要なコンポーネントの読み込み

use_unit("Zend/framework/library/Zend/Validate/Alnum.php");

入力された値の検証

function Button1Click($sender, $params)
{
  $validator = new Zend_Validate_Alnum();
  if ($validator->isValid($this->Edit1->Text)) {
    $this->Label1->Caption = '正しい値が入力されました。';
  } else {
    $this->Label1->Caption = '入力された値に間違いがあります。';
  }
}

よく使う標準のバリデーションクラス
(参考:Zend Framework: Documentation: 標準のバリデーションクラス群 – Zend Framework Manual

  • 英数字のみで構成されているか
    use_unit("Zend/framework/library/Zend/Validate/Alnum.php");
    $validator = new Zend_Validate_Alnum();
    
  • 英字のみで構成されているか
    use_unit("Zend/framework/library/Zend/Validate/Alpha.php");
    $validator = new Zend_Validate_Alpha();
    
  • 指定された範囲内にあるか
    use_unit("Zend/framework/library/Zend/Validate/Between.php");
    $validator = new Zend_Validate_Between(array('min' => 0, 'max' => 10));
    
  • 正しい日付の形式か
    use_unit("Zend/framework/library/Zend/Validate/Date.php");
    $validator = new Zend_Validate_Date(array('format' => 'yyyy/mm/dd'));
    
  • 数字のみで構成されているか
    use_unit("Zend/framework/library/Zend/Validate/Digits.php");
    $validator = new Zend_Validate_Digits();
    
  • 正しいメールアドレスの形式か
    use_unit("Zend/framework/library/Zend/Validate/EmailAddress.php");
    $validator = new Zend_Validate_EmailAddress();
    
  • 設定した値よりも大きいか
    use_unit("Zend/framework/library/Zend/Validate/GreaterThan.php");
    $validator = new Zend_Validate_GreaterThan(array('min' => 10));
    
  • 整数型か
    use_unit("Zend/framework/library/Zend/Validate/Int.php");
    $validator = new Zend_Validate_Int();
    
  • 設定した値よりも小さいか
    use_unit("Zend/framework/library/Zend/Validate/LessThan.php");
    $validator = new Zend_Validate_LessThan(array('max' => 10));
    
  • 空でないか
    use_unit("Zend/framework/library/Zend/Validate/NotEmpty.php");
    $validator = new Zend_Validate_NotEmpty();
    
  • 正規表現にマッチするか
    use_unit("Zend/framework/library/Zend/Validate/Regex.php");
    $validator = new Zend_Validate_Regex(array('pattern' => '/^Test/'));
    
  • 文字数が指定された範囲内にあるか
    use_unit("Zend/framework/library/Zend/Validate/StringLength.php");
    $validator = new Zend_Validate_StringLength(array('min' => 5, 'max' => 10));
    
    //マルチバイト文字の文字数を検証するときに必要
    iconv_set_encoding('internal_encoding', 'utf-8');
    

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください