Skip to content
docsv0.1.0

GateEvaluatorInterface

Interface que define cómo se evalúa un gate. Los implementadores leen la configuración del GateDefinition (tipo, requerimientos, evidencias, campos) y validan contra el TransitionContext proporcionado. Ejemplos de implementaciones: - StandardGateEvaluator: Evaluador genérico que valida campos y evidencias - RoleBasedGateEvaluator: Evaluador que valida permisos por rol - CustomGateEvaluator: Evaluador para lógica de negocio específica

GateEvaluatorInterface::evaluate()

abstract public function evaluate(Milpa\Workflow\Entities\GateDefinition $gateDefinition, Milpa\Workflow\StateMachine\TransitionContext $context): Milpa\Workflow\StateMachine\GateResult

Evalúa si un gate específico permite la transición. Lee la configuración del GateDefinition y valida contra el contexto: - Si el gate requiere campos (required_fields), verifica que estén en context->fieldValues - Si el gate requiere evidencias (required_evidence), verifica que estén en context->evidenceIds - Si el gate ya fue pasado (context->gatePassages), puede retornar pass() - Si el gate fue exceptuado (context->metadata['waived_gate']), puede retornar waived()

Parameters

Parameters of evaluate()
NameTypeDescription
$gateDefinitionGateDefinitionDefinición del gate desde BD
$contextTransitionContextContexto con datos del actor, entidad y evaluación

Returns

Resultado de la evaluación (pass/fail/waived)

GateEvaluatorInterface::getName()

abstract public function getName(): string

Retorna el nombre identificador del evaluador. Útil para logging y debugging. Ejemplo: 'standard', 'role_based', 'budget_approval'