can() public method

public can ( $transition, array $parameters = [] )
$parameters array
コード例 #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);
 }
コード例 #2
0
 /**
  * @{inheritDoc}
  */
 public function can($transition)
 {
     $transition = $transition instanceof TransitionInterface ? $transition : $this->getTransition($transition);
     if (!$this->securityContext->isGranted($transition->getName(), $this->getObject())) {
         return false;
     }
     return parent::can($transition);
 }
コード例 #3
0
 protected function tryAnswerForCommand(Update $update)
 {
     if (!$update->isText()) {
         return null;
     }
     foreach ($this->transitions() as $transition_name => $transition_options) {
         $isValidTransition = starts_with($update->message->text, '/' . $transition_name) && $this->stateMachine->can($transition_name);
         if ($isValidTransition) {
             return $this->transition($transition_name);
         }
     }
     return null;
 }
コード例 #4
0
 /**
  * Returns if the transition is applicable.
  *
  * @param string|TransitionInterface $transition
  * @param array                      $parameters
  *
  * @return bool
  */
 public function can($transition, array $parameters = [])
 {
     return $this->stateMachine->can($transition, $parameters);
 }
コード例 #5
0
ファイル: Finite.php プロジェクト: AM2studio/Laravel-Finite
 /**
  * Checks whether object can transition
  *
  * @param \Illuminate\Database\Eloquent\Model $object
  * @param $value
  * @return bool
  */
 public function can(\Illuminate\Database\Eloquent\Model $object, $value)
 {
     $this->setStateMachine($object);
     return $this->stateMachine->can($value);
 }
コード例 #6
0
use Finite\State\State;
use Finite\State\StateInterface;
use Finite\StateMachine\StateMachine;
// Composer Autoloader
require_once '../vendor/autoload.php';
// Create a new State Machine
$stateMachine = new StateMachine();
// define some States
$stateMachine->addState(new State('state1', StateInterface::TYPE_INITIAL));
$stateMachine->addState(new State('state2'));
$stateMachine->addState(new State('state3'));
$stateMachine->addState(new State('state4', StateInterface::TYPE_FINAL));
$thing = new Thing();
// add some transitions
$stateMachine->addTransition('from_1_to_2', 'state1', 'state2');
$stateMachine->addTransition('from_2_to_3', 'state2', 'state3');
$stateMachine->addTransition('from_3_to_4', 'state3', 'state4');
$stateMachine->addTransition('from_4_to_2', 'state4', 'state2');
// add stateful object into state machine
$stateMachine->setObject($thing);
$stateMachine->initialize();
// current state
echo $stateMachine->getCurrentState();
// can transition to a valid state
var_dump($stateMachine->can('from_1_to_2'));
// can transition to a invalid state
var_dump($stateMachine->can('from_2_to_3'));
// switch state
$stateMachine->apply('from_1_to_2');
var_dump($stateMachine->can('from_2_to_3'));
echo $stateMachine->getCurrentState();