使用PEAR的FSM(用法示例),如果防护失败,您可以使用动作回调返回下一个状态,如下所示:
$payload = '';
$fsm = new FSM('STATE1', $payload);
function guard1($symbol, $payload) {
if ($payload == 'something') {
// Guard success, allow transition
return;
}
else {
// Guard fail, return to previous state
return 'STATE1';
}
}
$fsm->addTransition('SYMBOL1', 'STATE1', 'STATE2', 'guard1');
$fsm->process('SYMBOL1');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2401 次 |
| 最近记录: |