<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
aegisora / scalar-equality-rule-guardian example snippets
$guardian->check(
$value,
ScalarEqualityRule::createEqual($expectedValue),
new ValuesNotEqualException()
);
$scalarEqualityRuleGuardian->checkEqual($value, $expectedValue, new ValuesNotEqualException());
use Aegisora\Guardian\Guardian;
use Aegisora\Guardian\Exceptions\GuardianValidationException;
use Aegisora\RuleGuardians\ScalarEqualityRule\ScalarEqualityRuleGuardian;
$guardian = new Guardian();
$scalarEqualityRuleGuardian = new ScalarEqualityRuleGuardian($guardian);
try {
$scalarEqualityRuleGuardian->checkEqual($value, $expectedValue);
// $value is strictly equal to $expectedValue
} catch (GuardianValidationException $exception) {
// $value is not equal to $expectedValue
}
use Aegisora\Guardian\Guardian;
use Aegisora\RuleGuardians\ScalarEqualityRule\ScalarEqualityRuleGuardian;
use App\Exceptions\ValuesNotEqualException;
$guardian = new Guardian();
$scalarEqualityRuleGuardian = new ScalarEqualityRuleGuardian($guardian);
$scalarEqualityRuleGuardian->checkEqual(
$value,
$expectedValue,
new ValuesNotEqualException()
);
use Aegisora\RuleGuardians\ScalarEqualityRule\ScalarEqualityRuleGuardian;
use App\Exceptions\InvalidConfirmationTokenException;
final class ConfirmationService
{
private ScalarEqualityRuleGuardian $scalarEqualityRuleGuardian;
public function __construct(
ScalarEqualityRuleGuardian $scalarEqualityRuleGuardian
) {
$this->scalarEqualityRuleGuardian = $scalarEqualityRuleGuardian;
}
public function confirm(string $providedToken, string $expectedToken): void
{
$this->scalarEqualityRuleGuardian->checkEqual(
$providedToken,
$expectedToken,
new InvalidConfirmationTokenException()
);
// business logic for a confirmed action
}
}
use App\Exceptions\ValuesNotEqualException;
try {
$scalarEqualityRuleGuardian->checkEqual($value, $expectedValue, new ValuesNotEqualException());
} catch (ValuesNotEqualException $exception) {
// domain-specific handling
}
use Aegisora\Guardian\Exceptions\GuardianExecutingRuleException;
try {
$scalarEqualityRuleGuardian->checkEqual([], 1);
} catch (GuardianExecutingRuleException $exception) {
// the rule could not be executed
}