poi*_*son 5 php workflow user-management
我希望在PHP应用程序中实现用户状态/工作流处理.
目前有:
想要:
我的研究:
我检查了SO和其他地方的工作流程和状态机的PHP实现,并且有希望的候选人似乎是
对于与上述任何一个库合作的任何经验和/或关于我需要什么的适用性的意见或者对其他地方的提示,我将不胜感激.
根据您的状态设置方式,听起来您可以只设置一个带有工厂的类系统来优雅地处理所有这些?
您还可以使用状态检查来设置类,这可能会引发异常,并且基本上无法实例化该类(因此无法进入该状态)。
我想这样的事情可能对你有用:
class StateFactory {
$currentState;
function __construct(){
if(!isset($_SESSION['currentState'])){
$this->currentState = 'StateOne';
}
else{
$this->currentState = $_SESSION['currentState'];
}
$this->currentState = new {$this->currentState}->processState(); // I think something like this will work
}
function __deconstruct(){
$_SESSION['currentState'] = $this->currentState;
}
}
abstract class State{
abstract function processState();
}
class StateOne extends State{
function processState(){
if(<check what is needed for this state>){
<do what you need to do for this state>
return 'StateTwo';
}
else
{
return 'StateWhatever';
}
}
}
class StateTwo extends State{
function processState(){
if(<check what is needed for this state>){
<do what you need to do for this state>
return 'StateThree';
}
else
{
return 'StateWhatever';
}
}
}
class StateThree extends State{
...
}
Run Code Online (Sandbox Code Playgroud)
显然,这其中缺少了很多东西,并且需要做很多工作才能使其成为您可以实际使用的东西,但是如果您像这样将东西分开,它就不会那么混乱,您将能够知道每个东西在哪里正在检查状态以及正在检查的内容。
| 归档时间: |
|
| 查看次数: |
1710 次 |
| 最近记录: |