ThinkpHP AOP 사상 과 유사 한 매개 변수 검증 의 실현 방법

사고방식 설명:API 를 개발 하 든 백 엔 드 프로젝트 를 할 때 백 엔 드 는 전단 전송의 매개 변 수 를 영원히 믿 지 말고 매개 변수의 합 법성 과 안전성 을 검증 해 야 한다.그렇다면 실제 프로젝트 개발 시 파 라 메 터 를 어떻게 간편 하 게 검증 할 수 있 을 까?TP 는 검증 기,독립 검증,또는 Controller 기본 클래스 를 계승 하 는 상황 에서 vaidate 방법 을 사용 하 는 등 여러 가지 매개 변수 검증 방식 을 제공 했다.검증 기 는 비교적 좋 은 선택 이다.하나의 컨트롤 러 는 여러 가지 방법 이 있 고 여러 가지 요청 이 있다 는 것 을 나타 내 며 여러 장면 이 있다 는 것 을 나타 낸다.하나의 항목 이 컨트롤 러 만 있 는 것 이 아니 라 검증 기 를 만들어 야 한 다 는 뜻 이다.대상 을 대상 으로 하 는 사상 은 우리 가 기본 적 인 검증 기 를 구축 한 다음 에 하위 클래스 를 계승 하면 된다.그러면 어떻게 매개 변수 검증 을 실현 할 수 있 습 니까?다음은 AOP 사상 과 유사 한 매개 변수 검증 의 실현 을 소개 하 겠 습 니 다.
정의 검증 기 기본 클래스
기본 클래스 app\common\validator\\BaseValidator.php 정의

<?php

namespace app\common\validator;

use app\common\exception\ParamException;
use think\Validate;

class BaseValidator extends Validate
{
  /**
   * @param string $scene
   * @return bool
   * @throws ParamException
   */
  public function checkParams($scene='')
  {
    $params = input('param.');
    $res = $this->scene($scene)->check($params);

    if( ! $res ){
      $error = $this->error;
      if(is_array($error)){
        $error = implode(',',$error);
      }
      throw new ParamException(['errMsg'=>$error,]);
    }
    return $res;
  }

  //       

}

정의 검증 기

<?php

namespace app\common\validator\user;

use app\common\validator\BaseValidator;

class UserValidator extends BaseValidator
{
  protected $rule =  [
    'name' => 'require|max:25',
    'age'  => 'number|between:1,120',
    'email' => 'email',
  ];

  protected $message =  [
    'name.require' => '    ',
    'name.max'   => '        25   ',
    'age.number'  => '       ',
    'age.between' => '     1-120  ',
    'email'    => '      ',
  ];

  protected $scene = [
    'register' => ['name','email'],
  ];
}

검증 매개 변수
User.php 컨트롤 러 register 방법,실례 화 검증 기,그리고 장면 검증 을 실시한다.

  public function register(Request $request){
    $validator = new UserValidator();
    $validator->checkParams('register');
    .
    .
    .
  }  
이로써 AOP 사상 과 유사 한 매개 변수 검증 이 완료 됐다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기