Finite\StateMachine\StateMachine::can PHP Method

can() public method

public can ( $transition, array $parameters = [] )
$parameters array
    public function can($transition, array $parameters = array())
    {
        $transition = $transition instanceof TransitionInterface ? $transition : $this->getTransition($transition);
        if (null !== $transition->getGuard() && !call_user_func($transition->getGuard(), $this)) {
            return false;
        }
        if (!in_array($transition->getName(), $this->getCurrentState()->getTransitions())) {
            return false;
        }
        $event = new TransitionEvent($this->getCurrentState(), $transition, $this, $parameters);
        $this->dispatchTransitionEvent($transition, $event, FiniteEvents::TEST_TRANSITION);
        return !$event->isRejected();
    }

Usage Example

コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function can($transition, array $parameters = array())
 {
     $transition = $transition instanceof TransitionInterface ? $transition : $this->getTransition($transition);
     if (!$this->authorizationChecker->isGranted($transition->getName(), $this->getObject())) {
         return false;
     }
     return parent::can($transition, $parameters);
 }
All Usage Examples Of Finite\StateMachine\StateMachine::can