本文实例讲述了PHP实现基于状态的责任链审批模式。分享给大家供大家参考,具体如下:
我们开发网站,除了前后,还有后台,除了内容管理,很多时候要涉及到『审批』。
比如:商务部要做个专题推广活动,活动中需要调用一些商品做优惠。
1、商务部编辑先写文案
2、商务部领导审批文案内容
3、商品部领导需要审批商品的价格和库存(万一没货呢)
4、后面可能还有好多领导要审批(带扩展)
今天我们要引入的模式是『责任链模式』
在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来,形成一条链条。请求在这个链条上传递,知道链条上的某一个对象决定处理次请求。发出这个请求的客户端并不知道链条上哪一个对象最终处理这个请求。
为了演示方便,我们做价格设定。
1、假定层级关系是:商品部领导>商务部领导>编辑
2、假设只能一级级审批(也就是不能跳级,仅为了演示方便)
3、这里审批暂时不能回退
(上图:演示界面show.php)
show.php:
require('subject.php');
if ($_GET){
if (isset($_GET['createSubject'])){ //点击创建文案后执行
$subject &