/** * Получает Transition Specification для перемещения сущности из oldState в newState * * @param string $oldStateName * @param string $newStateName * @return null|TransitionSpecification */ public function getTransitionSpecification($oldStateName, $newStateName) { $foundedTransitionSpecification = null; foreach ($this->transitionsSpecifications as $transition) { if ($transition->getOldState()->getName() === $oldStateName && $transition->getNewState()->getName() === $newStateName) { $foundedTransitionSpecification = $transition; } } if (is_null($foundedTransitionSpecification)) { throw WorkflowEngineException::cantFindTransitionSpecification($oldStateName, $newStateName, array_keys($this->getTransitionsSpecifications())); } return $foundedTransitionSpecification; }