使用PHP怎么实现一个基于状态的责任链审批模式

  介绍

这篇文章将为大家详细讲解有关使用PHP怎么实现一个基于状态的责任链审批模式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

节目。php:

& lt; php ?   要求才能(& # 39;subject.php& # 39;);   if 才能;($ _GET) {   ,,,if (收取($ _GET [& # 39; createSubject& # 39;])){,//点击创建文案后执行   ,,,,,subject 美元;=,new 主题();   ,,,,,主题→美元content =, & # 39;文案的内容& # 39;;   ,,,,,为主题→保存();   ,,,}   ,,}   比;   & lt; html>   & lt;才能head>   ,,,& lt; title>责任链——审批& lt;/title>   ,,,& lt; style>   ,,,,,* {marign: 0;填充:0}   ,,,,,.container{宽度:100%,利润率:0,汽车;text-align:,中心}   ,,,& lt;/style>   & lt;才能/head>   & lt;才能body>   ,,,& lt; div 类=癱ontainer"比;   ,,,,,& lt; div> & lt; h3>流程演示界面& lt;/h3> & lt;/div>   ,,,,,& lt; form 方法=癵et", action=皊how.php"比;   ,,,,,,,& lt; div 类=皉ow"比;   ,,,,,,,,,& lt; textarea  name=啊? id=啊?关口=?0”,行=?0“祝辞& lt;/textarea>   ,,,,,,,,,& lt; div>   ,,,,,,,,,,,& lt; button  name=癱reateSubject"祝辞编辑创建文案& lt;/button>   ,,,,,,,,,& lt;/div>   ,,,,,,,& lt;/div>   ,,,,,,,& lt; div 类=皉ow"比;   ,,,,,,,,,& lt; hr>   ,,,,,,,,,& lt; button  name=皊tep"在领导审批& lt;/button>   ,,,,,,,& lt;/div>   ,,,,,& lt;/form>   ,,,& lt;/div>   & lt;才能/body>   & lt;/html>

编辑点击“创建文案”提交内容,然后把文案写到到本地json文件(保存)。文案的主题是主题。php:

& lt; php ?   class 主题   {   public 才能;content 美元;=,& # 39;& # 39;,,//文案内容   public 才能;state 美元;=,0;,//初试状态   ,/* *   ,,*,保存内容(编辑保存)   ,,*/public 才能;function 保存(){   ,,,//我们这里保存到本地文件   ,,,用file_put_contents (__DIR__强生# 39;/subject.json& # 39;, json_encode()美元);   ,,,echo  & # 39;文案已经创建成功& # 39;;   ,,}   }

<强>这个时候文案已经创建好了,需要进入审批

抽象类(领导)经理。php:

& lt; php ?   abstract  class 经理   {   public 才能;主题;美元,//加载专题内容   public 才能;mystate=0美元,,//当前状态,这个很重要   public 才能;领袖美元=false;,//重要,设置自己的领导是谁   public 才能;myname 美元;=,& # 39;& # 39;,,//当前审批者的名字   ,/* *   ,,*,设置领导是谁   ,,*,@param  $领袖   ,,*/public 才能;function  setLeader(领袖)美元   {才能   ,,,这个→美元leader =,领袖;美元,//形成责任链的关键   ,,}   public 才能;function  __construct ()   {才能   ,,,str 美元;=,file_get_contents (__DIR__强生# 39;/subject.json& # 39;);   ,,,这个→美元subject =, json_decode (str);   ,,}   public 才能;function 步骤(msg)美元   {才能   ,,,//很重要,代表审批   ,,,//只有当对象的状态和自己的mystate相等是才会处理   ,,,if  ($ this→主题→state ==,这个→美元mystate){,//代表当前是自己要处理的   ,,,,,//在这执行审批通过的,具体   ,,,,,echo  msg 美元;只& # 39;审批制是:& # 39;。这→美元的名字;   ,,,,,//判断自己的是否有领导,如果有把控制权交给领导   ,,,,,if  ($ this→领袖){   ,,,,,,,这个→美元主题→state =, $ this→→领袖mystate;,//交控制权   ,,,,,,,用file_put_contents (__DIR__强生# 39;/subject.json& # 39;, json_encode ($ this→主题)),,//保存状态   ,,,,,其他}{   ,,,,,,,echo  & # 39;审批已经结束& # 39;;   ,,,,,}   还有,,,}{   ,,,,,if  ($ this→领袖){,//领袖就是维护整个类的,链   ,,,,,,,//让自己的领导去审批   ,,,,,,,这个美元→→领袖步骤(味精);   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

使用PHP怎么实现一个基于状态的责任链审批模式