84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
要求是用php的oop编程,赶脚无从下手,请php大神给出思路和一些伪代码,或者可以用一些设计模式,不胜感激
业精于勤,荒于嬉;行成于思,毁于随。
责任链模式https://github.com/TIGERB/easy-tips/blob/master/patterns/chainOfResponsibility/test.php
不知道是不是这个 。我抄 @TIGERB 的
* @example 运行 php test.php */ // 注册自加载 spl_autoload_register('autoload'); function autoload($class) { require dirname($_SERVER['SCRIPT_FILENAME']) . '//..//' . str_replace('\\', '/', $class) . '.php'; } /************************************* test *************************************/ use chainOfResponsibility\HandlerAccessToken; use chainOfResponsibility\HandlerFrequent; use chainOfResponsibility\HandlerArguments; use chainOfResponsibility\HandlerSign; use chainOfResponsibility\HandlerAuthority; use chainOfResponsibility\Request; try { // 下面我们用责任链模式实现一个api-gateway即接口网关 // 初始化一个请求对象 $request = new Request(); // 设置一个请求身份id $request->requestId = uniqid(); // 初始化一个:令牌校验的handler $handlerAccessToken = new HandlerAccessToken(); // 初始化一个:访问频次校验的handler $handlerFrequent = new HandlerFrequent(); // 初始化一个:必传参数校验的handler $handlerArguments = new HandlerArguments(); // 初始化一个:签名校验的handler $handlerSign = new HandlerSign(); // 初始化一个:访问权限校验的handler $handlerAuthority = new HandlerAuthority(); // 构成对象链 $handlerAccessToken->setNext($handlerFrequent) ->setNext($handlerArguments) ->setNext($handlerSign) ->setNext($handlerAuthority); // 启动网关 $handlerAccessToken->start($request); } catch (\Exception $e) { echo $e->getMessage(); }
1.建议使用工厂模式2.写一个public方法为入口,至于参数系审核内容,和审核人员3.根据相关审核内容字段实例化相关工厂类4.1.在相关类判断获取目前审核内容状态4.2获取相关人员权限4.1 => 4.2 判断相关人员权限是否可以操作审核内容的下一步动作4.3 可以及时更新,返回true。否则返回false
工作流吧,这种东西是算法和思想,和语言没关系
你去看一下laravel5的middleware怎么实现的 套用一下就行了或者你也可以用decorator模式来处理审核多层级的问题,但是不如laravel的closure灵活具体实现代码你自己写吧 这和算法没什么关系
责任链模式
https://github.com/TIGERB/easy-tips/blob/master/patterns/chainOfResponsibility/test.php
不知道是不是这个 。我抄 @TIGERB 的
1.建议使用工厂模式
2.写一个public方法为入口,至于参数系审核内容,和审核人员
3.根据相关审核内容字段实例化相关工厂类
4.1.在相关类判断获取目前审核内容状态
4.2获取相关人员权限
4.1 => 4.2 判断相关人员权限是否可以操作审核内容的下一步动作
4.3 可以及时更新,返回true。否则返回false
工作流吧,这种东西是算法和思想,和语言没关系
你去看一下laravel5的middleware怎么实现的 套用一下就行了
或者你也可以用decorator模式来处理审核多层级的问题,但是不如laravel的closure灵活
具体实现代码你自己写吧 这和算法没什么关系