84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
要求是用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灵活
具体实现代码你自己写吧 这和算法没什么关系