PHP中简单的伪责任链模式(一)

PHP中对进行链式验证(常见于登录的验证)

下面以表单提交进行演示

创建验证的抽象类`FormValidate

nextHandler = $formValidtate;
  }

  final public function handle(Request $request)
  {
      if (!$this->handleFormCondition($request)) {
          return false;
      }
      $this->nextHandler->handleFormCondition($request);
  }


  abstract public function handleFormCondition(Request $request);


}

创建两个类TestForm1、TestForm2继承自FormValidate

get('test1') == 'test1') {
            echo 'testForm1---success';
            return true;
        } else {
            echo 'testForm1---fail';
            return false;
        }

    }
}

get('test2') == 'test2') {
            echo 'testForm2---sucess'.PHP_EOL;
            return true;
        } else {
            echo 'testForm2---fail';
            return false;
        }

    }

}

在控制器中进行访问

testForm1 = $testForm1;
        $this->testForm2 = $testForm2;
    }

    public function create()
    {
        $array = [[1,2,3], [4,5,6], [7,8,9]];
        $res = array_collapse($array);
        var_dump($res);
        $res = array_collapse($res);
        dd($res);


        return view('form.index');
    }

    public function store(Request $request)
    {
        $this->testForm1->setNext($this->testForm2);
        $this->testForm1->handle($request);

    }
}

上面的这种写法是以一种面向对象的思维对多个验证条件进行链式验证
即 条件1:true->条件2:true->条件3:true.....。没有其他的额外的分支。

你可能感兴趣的:(PHP中简单的伪责任链模式(一))