[Workflow] Added parameter typhint where possible
This commit is contained in:
parent
8fb4741f92
commit
62e615b095
@ -73,11 +73,9 @@ class DefinitionBuilder
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $place
|
|
||||||
*
|
|
||||||
* @return $this
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function addPlace($place)
|
public function addPlace(string $place)
|
||||||
{
|
{
|
||||||
if (!$this->places) {
|
if (!$this->places) {
|
||||||
$this->initialPlaces = $place;
|
$this->initialPlaces = $place;
|
||||||
|
@ -25,10 +25,6 @@ interface DumperInterface
|
|||||||
/**
|
/**
|
||||||
* Dumps a workflow definition.
|
* Dumps a workflow definition.
|
||||||
*
|
*
|
||||||
* @param Definition $definition A Definition instance
|
|
||||||
* @param Marking|null $marking A Marking instance
|
|
||||||
* @param array $options An array of options
|
|
||||||
*
|
|
||||||
* @return string The representation of the workflow
|
* @return string The representation of the workflow
|
||||||
*/
|
*/
|
||||||
public function dump(Definition $definition, Marking $marking = null, array $options = []);
|
public function dump(Definition $definition, Marking $marking = null, array $options = []);
|
||||||
|
@ -236,7 +236,7 @@ class GraphvizDumper implements DumperInterface
|
|||||||
/**
|
/**
|
||||||
* @internal
|
* @internal
|
||||||
*/
|
*/
|
||||||
protected function dotize($id)
|
protected function dotize(string $id)
|
||||||
{
|
{
|
||||||
return hash('sha1', $id);
|
return hash('sha1', $id);
|
||||||
}
|
}
|
||||||
|
@ -27,10 +27,7 @@ class Event extends BaseEvent
|
|||||||
private $transition;
|
private $transition;
|
||||||
private $workflow;
|
private $workflow;
|
||||||
|
|
||||||
/**
|
public function __construct(object $subject, Marking $marking, Transition $transition = null, WorkflowInterface $workflow = null)
|
||||||
* @param object $subject
|
|
||||||
*/
|
|
||||||
public function __construct($subject, Marking $marking, Transition $transition = null, WorkflowInterface $workflow = null)
|
|
||||||
{
|
{
|
||||||
$this->subject = $subject;
|
$this->subject = $subject;
|
||||||
$this->marking = $marking;
|
$this->marking = $marking;
|
||||||
@ -63,7 +60,7 @@ class Event extends BaseEvent
|
|||||||
return $this->workflow->getName();
|
return $this->workflow->getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getMetadata(string $key, $subject)
|
public function getMetadata(string $key, object $subject)
|
||||||
{
|
{
|
||||||
return $this->workflow->getMetadataStore()->getMetadata($key, $subject);
|
return $this->workflow->getMetadataStore()->getMetadata($key, $subject);
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ use Symfony\Component\Workflow\Marking;
|
|||||||
use Symfony\Component\Workflow\Transition;
|
use Symfony\Component\Workflow\Transition;
|
||||||
use Symfony\Component\Workflow\TransitionBlocker;
|
use Symfony\Component\Workflow\TransitionBlocker;
|
||||||
use Symfony\Component\Workflow\TransitionBlockerList;
|
use Symfony\Component\Workflow\TransitionBlockerList;
|
||||||
|
use Symfony\Component\Workflow\WorkflowInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Fabien Potencier <fabien@symfony.com>
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
@ -27,9 +28,9 @@ class GuardEvent extends Event
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function __construct($subject, Marking $marking, Transition $transition, $workflowName = null)
|
public function __construct(object $subject, Marking $marking, Transition $transition, WorkflowInterface $workflow = null)
|
||||||
{
|
{
|
||||||
parent::__construct($subject, $marking, $transition, $workflowName);
|
parent::__construct($subject, $marking, $transition, $workflow);
|
||||||
|
|
||||||
$this->transitionBlockerList = new TransitionBlockerList();
|
$this->transitionBlockerList = new TransitionBlockerList();
|
||||||
}
|
}
|
||||||
|
@ -16,13 +16,9 @@ use Symfony\Component\Workflow\Transition;
|
|||||||
class GuardExpression
|
class GuardExpression
|
||||||
{
|
{
|
||||||
private $transition;
|
private $transition;
|
||||||
|
|
||||||
private $expression;
|
private $expression;
|
||||||
|
|
||||||
/**
|
public function __construct(Transition $transition, string $expression)
|
||||||
* @param string $expression
|
|
||||||
*/
|
|
||||||
public function __construct(Transition $transition, $expression)
|
|
||||||
{
|
{
|
||||||
$this->transition = $transition;
|
$this->transition = $transition;
|
||||||
$this->expression = $expression;
|
$this->expression = $expression;
|
||||||
|
@ -44,7 +44,7 @@ class GuardListener
|
|||||||
$this->validator = $validator;
|
$this->validator = $validator;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onTransition(GuardEvent $event, $eventName)
|
public function onTransition(GuardEvent $event, string $eventName)
|
||||||
{
|
{
|
||||||
if (!isset($this->configuration[$eventName])) {
|
if (!isset($this->configuration[$eventName])) {
|
||||||
return;
|
return;
|
||||||
|
@ -23,7 +23,7 @@ class NotEnabledTransitionException extends TransitionException
|
|||||||
{
|
{
|
||||||
private $transitionBlockerList;
|
private $transitionBlockerList;
|
||||||
|
|
||||||
public function __construct($subject, string $transitionName, WorkflowInterface $workflow, TransitionBlockerList $transitionBlockerList)
|
public function __construct(object $subject, string $transitionName, WorkflowInterface $workflow, TransitionBlockerList $transitionBlockerList)
|
||||||
{
|
{
|
||||||
parent::__construct($subject, $transitionName, $workflow, sprintf('Transition "%s" is not enabled for workflow "%s".', $transitionName, $workflow->getName()));
|
parent::__construct($subject, $transitionName, $workflow, sprintf('Transition "%s" is not enabled for workflow "%s".', $transitionName, $workflow->getName()));
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ class TransitionException extends LogicException
|
|||||||
private $transitionName;
|
private $transitionName;
|
||||||
private $workflow;
|
private $workflow;
|
||||||
|
|
||||||
public function __construct($subject, string $transitionName, WorkflowInterface $workflow, string $message)
|
public function __construct(object $subject, string $transitionName, WorkflowInterface $workflow, string $message)
|
||||||
{
|
{
|
||||||
parent::__construct($message);
|
parent::__construct($message);
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ use Symfony\Component\Workflow\WorkflowInterface;
|
|||||||
*/
|
*/
|
||||||
class UndefinedTransitionException extends TransitionException
|
class UndefinedTransitionException extends TransitionException
|
||||||
{
|
{
|
||||||
public function __construct($subject, string $transitionName, WorkflowInterface $workflow)
|
public function __construct(object $subject, string $transitionName, WorkflowInterface $workflow)
|
||||||
{
|
{
|
||||||
parent::__construct($subject, $transitionName, $workflow, sprintf('Transition "%s" is not defined for workflow "%s".', $transitionName, $workflow->getName()));
|
parent::__construct($subject, $transitionName, $workflow, sprintf('Transition "%s" is not defined for workflow "%s".', $transitionName, $workflow->getName()));
|
||||||
}
|
}
|
||||||
|
@ -30,17 +30,17 @@ class Marking
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function mark($place)
|
public function mark(string $place)
|
||||||
{
|
{
|
||||||
$this->places[$place] = 1;
|
$this->places[$place] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function unmark($place)
|
public function unmark(string $place)
|
||||||
{
|
{
|
||||||
unset($this->places[$place]);
|
unset($this->places[$place]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function has($place)
|
public function has(string $place)
|
||||||
{
|
{
|
||||||
return isset($this->places[$place]);
|
return isset($this->places[$place]);
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ final class MethodMarkingStore implements MarkingStoreInterface
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getMarking($subject): Marking
|
public function getMarking(object $subject): Marking
|
||||||
{
|
{
|
||||||
$method = 'get'.ucfirst($this->property);
|
$method = 'get'.ucfirst($this->property);
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ final class MethodMarkingStore implements MarkingStoreInterface
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function setMarking($subject, Marking $marking, array $context = [])
|
public function setMarking(object $subject, Marking $marking, array $context = [])
|
||||||
{
|
{
|
||||||
$marking = $marking->getPlaces();
|
$marking = $marking->getPlaces();
|
||||||
|
|
||||||
|
@ -28,12 +28,9 @@ class Registry
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param object $subject
|
|
||||||
* @param string|null $workflowName
|
|
||||||
*
|
|
||||||
* @return Workflow
|
* @return Workflow
|
||||||
*/
|
*/
|
||||||
public function get($subject, $workflowName = null)
|
public function get(object $subject, string $workflowName = null)
|
||||||
{
|
{
|
||||||
$matched = null;
|
$matched = null;
|
||||||
|
|
||||||
@ -54,11 +51,9 @@ class Registry
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param object $subject
|
|
||||||
*
|
|
||||||
* @return Workflow[]
|
* @return Workflow[]
|
||||||
*/
|
*/
|
||||||
public function all($subject): array
|
public function all(object $subject): array
|
||||||
{
|
{
|
||||||
$matched = [];
|
$matched = [];
|
||||||
foreach ($this->workflows as list($workflow, $supportStrategy)) {
|
foreach ($this->workflows as list($workflow, $supportStrategy)) {
|
||||||
|
@ -29,7 +29,7 @@ final class InstanceOfSupportStrategy implements WorkflowSupportStrategyInterfac
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function supports(WorkflowInterface $workflow, $subject): bool
|
public function supports(WorkflowInterface $workflow, object $subject): bool
|
||||||
{
|
{
|
||||||
return $subject instanceof $this->className;
|
return $subject instanceof $this->className;
|
||||||
}
|
}
|
||||||
|
@ -18,5 +18,5 @@ use Symfony\Component\Workflow\WorkflowInterface;
|
|||||||
*/
|
*/
|
||||||
interface WorkflowSupportStrategyInterface
|
interface WorkflowSupportStrategyInterface
|
||||||
{
|
{
|
||||||
public function supports(WorkflowInterface $workflow, $subject): bool;
|
public function supports(WorkflowInterface $workflow, object $subject): bool;
|
||||||
}
|
}
|
||||||
|
@ -21,10 +21,7 @@ use Symfony\Component\Workflow\Exception\InvalidDefinitionException;
|
|||||||
interface DefinitionValidatorInterface
|
interface DefinitionValidatorInterface
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @param Definition $definition
|
|
||||||
* @param string $name
|
|
||||||
*
|
|
||||||
* @throws InvalidDefinitionException on invalid definition
|
* @throws InvalidDefinitionException on invalid definition
|
||||||
*/
|
*/
|
||||||
public function validate(Definition $definition, $name);
|
public function validate(Definition $definition, string $name);
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ use Symfony\Component\Workflow\Exception\InvalidDefinitionException;
|
|||||||
*/
|
*/
|
||||||
class StateMachineValidator implements DefinitionValidatorInterface
|
class StateMachineValidator implements DefinitionValidatorInterface
|
||||||
{
|
{
|
||||||
public function validate(Definition $definition, $name)
|
public function validate(Definition $definition, string $name)
|
||||||
{
|
{
|
||||||
$transitionFromNames = [];
|
$transitionFromNames = [];
|
||||||
foreach ($definition->getTransitions() as $transition) {
|
foreach ($definition->getTransitions() as $transition) {
|
||||||
|
@ -27,7 +27,7 @@ class WorkflowValidator implements DefinitionValidatorInterface
|
|||||||
$this->singlePlace = $singlePlace;
|
$this->singlePlace = $singlePlace;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function validate(Definition $definition, $name)
|
public function validate(Definition $definition, string $name)
|
||||||
{
|
{
|
||||||
// Make sure all transitions for one place has unique name.
|
// Make sure all transitions for one place has unique name.
|
||||||
$places = array_fill_keys($definition->getPlaces(), []);
|
$places = array_fill_keys($definition->getPlaces(), []);
|
||||||
|
@ -49,7 +49,7 @@ class Workflow implements WorkflowInterface
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getMarking($subject)
|
public function getMarking(object $subject)
|
||||||
{
|
{
|
||||||
$marking = $this->markingStore->getMarking($subject);
|
$marking = $this->markingStore->getMarking($subject);
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ class Workflow implements WorkflowInterface
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function can($subject, $transitionName)
|
public function can(object $subject, string $transitionName)
|
||||||
{
|
{
|
||||||
$transitions = $this->definition->getTransitions();
|
$transitions = $this->definition->getTransitions();
|
||||||
$marking = $this->getMarking($subject);
|
$marking = $this->getMarking($subject);
|
||||||
@ -114,7 +114,7 @@ class Workflow implements WorkflowInterface
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function buildTransitionBlockerList($subject, string $transitionName): TransitionBlockerList
|
public function buildTransitionBlockerList(object $subject, string $transitionName): TransitionBlockerList
|
||||||
{
|
{
|
||||||
$transitions = $this->definition->getTransitions();
|
$transitions = $this->definition->getTransitions();
|
||||||
$marking = $this->getMarking($subject);
|
$marking = $this->getMarking($subject);
|
||||||
@ -150,7 +150,7 @@ class Workflow implements WorkflowInterface
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function apply($subject, $transitionName, array $context = [])
|
public function apply(object $subject, string $transitionName, array $context = [])
|
||||||
{
|
{
|
||||||
$marking = $this->getMarking($subject);
|
$marking = $this->getMarking($subject);
|
||||||
|
|
||||||
@ -202,7 +202,7 @@ class Workflow implements WorkflowInterface
|
|||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getEnabledTransitions($subject)
|
public function getEnabledTransitions(object $subject)
|
||||||
{
|
{
|
||||||
$enabledTransitions = [];
|
$enabledTransitions = [];
|
||||||
$marking = $this->getMarking($subject);
|
$marking = $this->getMarking($subject);
|
||||||
@ -249,7 +249,7 @@ class Workflow implements WorkflowInterface
|
|||||||
return $this->definition->getMetadataStore();
|
return $this->definition->getMetadataStore();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function buildTransitionBlockerListForTransition($subject, Marking $marking, Transition $transition)
|
private function buildTransitionBlockerListForTransition(object $subject, Marking $marking, Transition $transition)
|
||||||
{
|
{
|
||||||
foreach ($transition->getFroms() as $place) {
|
foreach ($transition->getFroms() as $place) {
|
||||||
if (!$marking->has($place)) {
|
if (!$marking->has($place)) {
|
||||||
@ -272,7 +272,7 @@ class Workflow implements WorkflowInterface
|
|||||||
return new TransitionBlockerList();
|
return new TransitionBlockerList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function guardTransition($subject, Marking $marking, Transition $transition): ?GuardEvent
|
private function guardTransition(object $subject, Marking $marking, Transition $transition): ?GuardEvent
|
||||||
{
|
{
|
||||||
if (null === $this->dispatcher) {
|
if (null === $this->dispatcher) {
|
||||||
return null;
|
return null;
|
||||||
@ -287,7 +287,7 @@ class Workflow implements WorkflowInterface
|
|||||||
return $event;
|
return $event;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function leave($subject, Transition $transition, Marking $marking): void
|
private function leave(object $subject, Transition $transition, Marking $marking): void
|
||||||
{
|
{
|
||||||
$places = $transition->getFroms();
|
$places = $transition->getFroms();
|
||||||
|
|
||||||
@ -307,7 +307,7 @@ class Workflow implements WorkflowInterface
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function transition($subject, Transition $transition, Marking $marking, array $context): array
|
private function transition(object $subject, Transition $transition, Marking $marking, array $context): array
|
||||||
{
|
{
|
||||||
if (null === $this->dispatcher) {
|
if (null === $this->dispatcher) {
|
||||||
return $context;
|
return $context;
|
||||||
@ -323,7 +323,7 @@ class Workflow implements WorkflowInterface
|
|||||||
return $event->getContext();
|
return $event->getContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function enter($subject, Transition $transition, Marking $marking): void
|
private function enter(object $subject, Transition $transition, Marking $marking): void
|
||||||
{
|
{
|
||||||
$places = $transition->getTos();
|
$places = $transition->getTos();
|
||||||
|
|
||||||
@ -343,7 +343,7 @@ class Workflow implements WorkflowInterface
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function entered($subject, Transition $transition = null, Marking $marking): void
|
private function entered(object $subject, ?Transition $transition, Marking $marking): void
|
||||||
{
|
{
|
||||||
if (null === $this->dispatcher) {
|
if (null === $this->dispatcher) {
|
||||||
return;
|
return;
|
||||||
@ -361,7 +361,7 @@ class Workflow implements WorkflowInterface
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function completed($subject, Transition $transition, Marking $marking): void
|
private function completed(object $subject, Transition $transition, Marking $marking): void
|
||||||
{
|
{
|
||||||
if (null === $this->dispatcher) {
|
if (null === $this->dispatcher) {
|
||||||
return;
|
return;
|
||||||
@ -374,7 +374,7 @@ class Workflow implements WorkflowInterface
|
|||||||
$this->dispatcher->dispatch($event, sprintf('workflow.%s.completed.%s', $this->name, $transition->getName()));
|
$this->dispatcher->dispatch($event, sprintf('workflow.%s.completed.%s', $this->name, $transition->getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private function announce($subject, Transition $initialTransition, Marking $marking): void
|
private function announce(object $subject, Transition $initialTransition, Marking $marking): void
|
||||||
{
|
{
|
||||||
if (null === $this->dispatcher) {
|
if (null === $this->dispatcher) {
|
||||||
return;
|
return;
|
||||||
|
@ -23,51 +23,39 @@ interface WorkflowInterface
|
|||||||
/**
|
/**
|
||||||
* Returns the object's Marking.
|
* Returns the object's Marking.
|
||||||
*
|
*
|
||||||
* @param object $subject A subject
|
|
||||||
*
|
|
||||||
* @return Marking The Marking
|
* @return Marking The Marking
|
||||||
*
|
*
|
||||||
* @throws LogicException
|
* @throws LogicException
|
||||||
*/
|
*/
|
||||||
public function getMarking($subject);
|
public function getMarking(object $subject);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if the transition is enabled.
|
* Returns true if the transition is enabled.
|
||||||
*
|
*
|
||||||
* @param object $subject A subject
|
|
||||||
* @param string $transitionName A transition
|
|
||||||
*
|
|
||||||
* @return bool true if the transition is enabled
|
* @return bool true if the transition is enabled
|
||||||
*/
|
*/
|
||||||
public function can($subject, $transitionName);
|
public function can(object $subject, string $transitionName);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds a TransitionBlockerList to know why a transition is blocked.
|
* Builds a TransitionBlockerList to know why a transition is blocked.
|
||||||
*
|
|
||||||
* @param object $subject A subject
|
|
||||||
*/
|
*/
|
||||||
public function buildTransitionBlockerList($subject, string $transitionName): TransitionBlockerList;
|
public function buildTransitionBlockerList(object $subject, string $transitionName): TransitionBlockerList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fire a transition.
|
* Fire a transition.
|
||||||
*
|
*
|
||||||
* @param object $subject A subject
|
|
||||||
* @param string $transitionName A transition
|
|
||||||
*
|
|
||||||
* @return Marking The new Marking
|
* @return Marking The new Marking
|
||||||
*
|
*
|
||||||
* @throws LogicException If the transition is not applicable
|
* @throws LogicException If the transition is not applicable
|
||||||
*/
|
*/
|
||||||
public function apply($subject, $transitionName, array $context = []);
|
public function apply(object $subject, string $transitionName, array $context = []);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns all enabled transitions.
|
* Returns all enabled transitions.
|
||||||
*
|
*
|
||||||
* @param object $subject A subject
|
|
||||||
*
|
|
||||||
* @return Transition[] All enabled transitions
|
* @return Transition[] All enabled transitions
|
||||||
*/
|
*/
|
||||||
public function getEnabledTransitions($subject);
|
public function getEnabledTransitions(object $subject);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
|
Reference in New Issue
Block a user