izzum\examples\inheritance\SuperHero::__construct PHP Метод

__construct() публичный Метод

public __construct ( $name, $alias )
    public function __construct($name, $alias)
    {
        $this->name = $name;
        $this->alias = $alias;
        //create machine with unique superhero name.
        //associate the domain object (that will be used on callables) with $this
        $context = new Context(new Identifier($name . ":" . $alias, "superhero-machine"), new ModelBuilder($this));
        //call parent constructor
        parent::__construct($context);
        //define the states and the state types, and some entry states
        $start = new State('start', State::TYPE_INITIAL);
        $callback_dress_normal_for_entering_state = array($this, 'changeIntoNormalClothes');
        $normal = new State('normal', State::TYPE_NORMAL, null, null, $callback_dress_normal_for_entering_state);
        $callback_entering_superhero_state = array($this, 'changeIntoCostume');
        $super = new State('superhero', State::TYPE_NORMAL, null, null, $callback_entering_superhero_state);
        $posing = new State('posing');
        $fighting = new State('fighting');
        $resqueing = new State('resqueing');
        $done = new State('done', State::TYPE_FINAL);
        //add transitions to this class (a subclass of statmachine), with event names
        $this->addTransition(new Transition($start, $normal, 'wakeup'));
        $this->addTransition(new Transition($normal, $done, 'done'));
        $this->addTransition(new Transition($super, $fighting, 'fight'));
        $this->addTransition(new Transition($super, $posing, 'pose'));
        $this->addTransition(new Transition($super, $resqueing, 'rescue'));
        //allow to go from super to every other state
        $this->addTransition(new Transition($super, new State('regex:/.*/')));
        //allow to go from every state to super
        $this->addTransition(new Transition(new State('regex:/.*/'), $super, 'beSuper'));
        //allow to go from every state to normal
        $this->addTransition(new Transition(new State('regex:/.*/'), $normal, 'standDown'));
        //allow to pose, rescue of fight from every state except start and normal
        $this->addTransition(new Transition(new State('not-regex:/start|normal/'), $posing, 'pose'));
        $this->addTransition(new Transition(new State('not-regex:/start|normal/'), $resqueing, 'resque'));
        $this->addTransition(new Transition(new State('not-regex:/start|normal/'), $fighting, 'fight'));
    }