VerificationResult
Immutable verdict of a verification: tri-state (passed / failed / waived) + PENDING for async verifiers. Framework-agnostic — carries only opaque strings, no Doctrine, no domain types. `principal` and `verifier` are opaque identifiers (e.g. "user:42", "human_verify"); the core never resolves them to entities. `missing` is a generic list of unmet requirement keys.
VerificationResult::pass()
public static function pass(?string $verifier = null, ?string $principal = null, array $metadata = []): selfBuild a PASSED result: the verification was satisfied on its merits.
Parameters
| Nombre | Tipo | Descripción |
|---|---|---|
| $verifier | ?string | |
| $principal | ?string | |
| $metadata | array<string, mixed> |
VerificationResult::fail()
public static function fail(string $reason, array $missing = [], ?string $verifier = null, array $metadata = [], ?string $principal = null): selfBuild a FAILED result, optionally listing the unmet requirement keys in `$missing`.
Parameters
| Nombre | Tipo | Descripción |
|---|---|---|
| $reason | string | |
| $missing | list<string> | |
| $verifier | ?string | |
| $metadata | array<string, mixed> | |
| $principal | ?string |
VerificationResult::waived()
public static function waived(string $reason, ?string $principal = null, ?string $verifier = null, array $metadata = []): selfExempted with a justification — clears the gate despite not passing on merit.
Parameters
| Nombre | Tipo | Descripción |
|---|---|---|
| $reason | string | |
| $principal | ?string | |
| $verifier | ?string | |
| $metadata | array<string, mixed> |
VerificationResult::pending()
public static function pending(?string $verifier = null, array $metadata = []): selfRequested but unresolved (async human/agent verify).
Parameters
| Nombre | Tipo | Descripción |
|---|---|---|
| $verifier | ?string | |
| $metadata | array<string, mixed> |
VerificationResult::isSatisfied()
public function isSatisfied(): boolWhether the gate this result represents is satisfied, i.e. PASSED or WAIVED. {@see VerificationStatus::isSatisfied()}
VerificationResult::isPending()
public function isPending(): boolWhether this result is still awaiting an async human/agent verifier.
VerificationResult::isFinal()
public function isFinal(): boolWhether this result is terminal, i.e. will not transition to another status. {@see VerificationStatus::isFinal()}
VerificationResult::hasMissing()
public function hasMissing(): boolWhether this result carries any unmet requirement keys.
VerificationResult::toArray()
public function toArray(): arraySerialize to a plain array for logging/transport (status as its scalar `.value`).