/**
  * 测试验证类
  *
  */
 public function test()
 {
     $validator = new YUN_Validator();
     $email = 'dddd..*';
     $validator->check($email, array(array('NotEmpty', '用户名不允许为空'), array('StringLength' => array(4, 60), '用户名必须介于 4~60 个字符之间'), array('Regex' => "/^[^\\'\"\\:;,\\<\\>\\?\\/\\\\*\\=\\+\\{\\}\\[\\]\\)\\(\\^%\$#\\!`\\s ]+\$/", '用户名包含非法字符')));
     //数据校验
     if (!$validator->isValid()) {
         throw new Exception($validator->getMessage());
     }
 }
 /**
  * 修改资料
  * @param string $uid
  * @param array $info
  */
 public function updateInfo($uid, $data)
 {
     $info = array();
     $validator = new YUN_Validator();
     $where = $this->db->quoteInto('uid=?', $uid);
     $user = $this->db->fetchRow($this->infoSql($where));
     if (empty($user)) {
         throw new Zend_Exception("用户ID '{$uid}' 不存在");
     }
     if (!empty($data['password'])) {
         //密码有变动
         $validator->check($data['password'], array(array('StringLength' => array(6, 50), '密码必须介于 6~50 个字符之间')))->check($data['confirmPwd'], array(array('NotEmpty', '确认密码不允许为空'), array('Equal' => $data['password'], '两次输入的密码不一致')));
         $info['password'] = md5(md5($data['password']));
         $info['salt'] = '';
     }
     //数据校验
     if (!$validator->isValid()) {
         throw new Zend_Exception($validator->getMessage());
     }
     if (!empty($info)) {
         $where = $this->db->quoteInto('uid=?', $uid);
         $this->db->update('user', $info, $where);
     }
 }
 /**
  * 验证文件上传 POST 数据
  * @param  array  $data
  * @return EGP_Validator
  */
 protected function _validate(array $data)
 {
     $validator = new YUN_Validator();
     return $validator->check(@$data['title'], array(array('NotEmpty', '标题不能为空')))->check(@$data['content'], array(array('NotEmpty', '信息内容不能为空')))->check(@$data['cate_id'], array(array('NotEmpty', '信息分类不能为空'), array('Integer', '信息分类 ID 必须是一个数字')));
 }
 /**
  * 对数据进行校验
  *
  * @param  array  $data
  * @return YUN_Validator
  */
 protected function _validate(array $data)
 {
     $validator = new YUN_Validator();
     $validator->check($data['cate_name'], array(array('NotEmpty', '分类名称不允许为空'), array('StringLength' => array(2, 20), '分类名称必须介于 2~20 个字符之间')))->check($data['sort_order'], array(array('Numeric', '排序必须是数字')))->check($data['cate_id'], array(array('Numeric', '分类ID必须是数字')));
     return $validator;
 }
 /**
  * 验证分类 POST 数据
  * @param  array  $data
  * @return EGP_Validator
  */
 protected function _validateCate(array $data)
 {
     $validator = new YUN_Validator();
     return $validator->check($data['cate_name'], array(array('NotEmpty', '分类名称不能为空'), array('StringLength' => array(1, 50), '分类名称不能超过 50 个字符')))->check($data['filepath'], array(array('NotEmpty', '分类存放路径不能为空'), array('Regex' => '/^[a-z_][\\w\\/]+$/i', '分类存放路径包含非法字符'), array('StringLength' => array(1, 100), '分类存放路径不能超过 100 个字符')))->check($data['description'], array(array('StringLength' => array(0, 250), '分类描述不能超过 250 个字符')))->check(intval(@$data['allow_upload']), array(array('Boolean', '分类是否允许上传文件必须是一个布尔值')))->check(intval(@$data['allow_delete']), array(array('Boolean', '分类是否允许删除文件必须是一个布尔值')));
 }
 /**
  * 对数据进行校验
  * @param  array  $data
  * @return EGP_Validator
  */
 protected function _validate(array $data)
 {
     $validator = new YUN_Validator();
     $validator->check($data['new_mod_name'], array(array('NotEmpty', '模块名称不允许为空'), array('English', '模块名称包含除 [a-zA-Z0-9_] 之外的非法字符'), array('StringLength' => array(2, 20), '模块名称必须介于 2~20 个字符之间')))->check($data['mod_desc'], array(array('NotEmpty', '模块说明不允许为空'), array('StringLength' => array(2, 80), '模块说明必须介于 2~80 个字符之间')));
     return $validator;
 }