• 关于脱离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();
        }
    }    
    

    至此, 大功告成~

      

  • 相关阅读:
    asp.net发布和更新网站
    细说 Form (表单)
    python之面向对象进阶3
    python之面向对象进阶2
    python之面向对象进阶
    python之面向对象
    python之模块与包
    python之常用模块(续)
    python 之常用模块
    迭代器和生成器函数
  • 原文地址:https://www.cnblogs.com/phpworld/p/7918617.html
Copyright © 2020-2023  润新知