Upgrading apps using OSInet FSM
The 2012 versions of the OSInet FSM are expected to be compatible with version 1.6 regarding machine descriptions ; however, the code has been refactored to the PSR-0 autoloading standard, and therefore requires PHP 5.3.
1.4 to 1.6
1.3 to 1.4
No application changes are necessary, BUT :
applications can now use external FSM descriptions in XML format. Building the FSM directly in code still works but it deprecated. It may go away at some later point. Constructors now typically look like just this:
function __construct()
{
$this->load_fsm();
parent::__construct();
}
1.2 to 1.3
1.1 to 1.2
The new post-event action feature allows shorter automata by event chaining
The new default “idle” event allows automatic progress in the absence of explicit events. For instance, whereas a
FTP client using FSM 1.1 will typically send events to connect, get and disconnect in PHP, the same can be done to a large extend using just the transitions table with FSM 1.2 using this mechanism to fire events in succession.
Because of this change, fsm::apply_event() now returns a fsm_result instead of directly returning the next state. Code needing to know the next state can:
either use apply_simple_event, which is equivalent to the previous incarnation of apply_event
use the fsm_state field from the value returned by fsm::apply_event