WorkflowResolverInterface
        WorkflowResolverInterface.php
                :
        52
                 
    
            Interface
                Resolves workflow for a given subject.
Is intended to be implemented as a decorator.
The following example assigns the 'workflow_with_audit' workflow to payment above 100000€, and passes others to the default workflow resolver:
final class WorkflowResolver implements WorkflowResolverInterface
{
    public function __construct(
         private WorkflowResolverInterface $innerWorkflowResolver
         private Registry $workflowRegistry
     ) {
     }
    public function resolveWorkflow(WorkflowSubjectInterface $subject): WorkflowInterface
    {
         if ($subject instanceof PaymentInterface || $subject instanceof PaymentCreateStruct) {
             if ($payment->getAmount()->greaterThan(Money::EUR(100000)) {
                 return $this->workflowRegistry->get($subject, 'workflow_with_audit');
             }
         }
         return $this->innerWorkflowResolver->resolveWorkflow($subject);
    }
}
and related service definition:
services:
   App\Payment\Workflow\WorkflowResolver:
     decorates: Ibexa\Contracts\Payment\Payment\Workflow\WorkflowResolverInterface
Methods¶
                 resolveWorkflow()
            ¶
resolveWorkflow()
            ¶
    
        
        WorkflowResolverInterface.php
                :
        54
                 
    
        |  |  | 
Parameters
| Name | Type | Default value | Description | 
|---|---|---|---|
| $subject | WorkflowSubjectInterface | - | - | 
Return values
WorkflowInterface