zoukankan      html  css  js  c++  java
  • 关于脱离laravel框架使用Illuminate/Validation验证器

    1.关于Illuminate/Validation验证器

      Validation 类用于验证数据以及获取错误消息。

      github地址:github.com/illuminate/validation

      文档地址:https://docs.golaravel.com/docs/4.1/validation/

    2.使用composer 

      如何使用composer:composer使用

      packagist:https://packagist.org/package...

      composer.json:

    {
      "require": {
        "illuminate/validation": "^5.5"
      }
    }
    

    3.将vendor引入,自定义类

    <?php
    /**
     * Created by PhpStorm.
     * User: Richard
     * Date: 2017/11/28
     * Time: 10:57
     */
    namespace Rester;
    class Validator extends IlluminateValidationFactory
    {
    
        private static $message = 'ok';
        private static $headers =
            [
                'e' => 'rules/data is empty',
                'na' => 'rules/data is not a array'
            ];
        /***
         * 创建实例
         *
         * @return IlluminateValidationFactory
         */
        public static function getInstance()
        {
            static $validator = null;
            if ($validator === null) {
                $test_translation_path = __DIR__.'/lang';
                $test_translation_locale = 'en';
                $translation_file_loader = new IlluminateTranslationFileLoader(new IlluminateFilesystemFilesystem, $test_translation_path);
                $translator = new IlluminateTranslationTranslator($translation_file_loader, $test_translation_locale);
                $validator = new IlluminateValidationFactory($translator);
            }
            return $validator;
        }
    
        /**
         * @param array $rules  验证规则
         * @param array $data   验证数据
         * @return bool
         */
        public static function validators($rules=[],$data=[])
        {
            if( empty($rules) || empty($data) )
            {
                self::$message = self::$headers['e'];
                return false;
            }
            if(is_array($rules) && is_array($data))
            {
                $v = self::vmake($rules,$data);
                if( $v->fails() )
                {
                    self::$message = $v->messages();
                    return false;
                }
                return true;
            }
            self::$message = self::$headers['na'];
            return false;
        }
    
        /**
         * 验证实例
         * @param $rules
         * @param $data
         * @return IlluminateValidationValidator
         */
        private static function vmake($rules,$data)
        {
            $v = self::getInstance()->make($data,$rules);
            return $v;
        }
    
        /**
         * 获取错误消息
         * @return string
         */
        public static function getMessage()
        {
            return self::$message;
        }
    }
    

    4.在项目中引入自定义类,调用验证

    //验证数据demo
    public function insert()
    {
        //验证数据
        $data = [
    		'name' => '1'
    	];
        //验证规则
        $rules = [
    		    'name' => 'required|string|min:2|max:5',
    		];
        if (ResterValidator::validators($rules,$data)) {
    	    echo 'ok';
        }else{
                echo ResterValidator::getMessage();
        }
    }    
    

    至此, 大功告成~

      

  • 相关阅读:
    python yield yield from
    python isinstance()与type()的区别
    python isinstance用法
    python 展开嵌套的序列
    python getmtime() 最近修改文件内容的时间
    python getctime() 文件最后一次的改变时间
    python getatime() 查看文件的访问时间
    python模拟随机游走
    getopt例子
    matplotlib 代码风格
  • 原文地址:https://www.cnblogs.com/phpworld/p/7918617.html
Copyright © 2011-2022 走看看