PHP code example of aegisora / numeric-range-rule-guardian

1. Go to this page and download the library: Download aegisora/numeric-range-rule-guardian library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

aegisora / numeric-range-rule-guardian example snippets


$guardian->check($value, NumericRangeRule::createBetween($min, $max), new InvalidValueException());

$numericRangeRuleGuardian->checkBetween($value, $min, $max, new InvalidValueException());

use Aegisora\Guardian\Exceptions\GuardianValidationException;
use Aegisora\Guardian\Guardian;
use Aegisora\RuleGuardians\NumericRangeRule\NumericRangeRuleGuardian;

$guardian = new Guardian();

$numericRangeRuleGuardian = new NumericRangeRuleGuardian($guardian);

try {
    $numericRangeRuleGuardian->checkBetween(3, 2, 4);
    // value is within the range
} catch (GuardianValidationException $exception) {
    // value is out of the range
}

use Aegisora\Guardian\Guardian;
use Aegisora\RuleGuardians\NumericRangeRule\NumericRangeRuleGuardian;
use App\Exceptions\InvalidValueException;

$guardian = new Guardian();

$numericRangeRuleGuardian = new NumericRangeRuleGuardian($guardian);

$numericRangeRuleGuardian->checkGreaterThan(1, 3, new InvalidValueException());

use Aegisora\RuleGuardians\NumericRangeRule\NumericRangeRuleGuardian;
use App\Exceptions\InvalidValueException;

final class ProductService
{
    private NumericRangeRuleGuardian $numericRangeRuleGuardian;

    public function __construct(
        NumericRangeRuleGuardian $numericRangeRuleGuardian
    ) {
        $this->numericRangeRuleGuardian = $numericRangeRuleGuardian;
    }

    /**
     * @param numeric $price
     */
    public function process($price): void
    {
        $this->numericRangeRuleGuardian->checkGreaterThan($price, 0, new InvalidValueException());

        // business logic for a value within the expected range
    }
}

use Aegisora\Guardian\Exceptions\GuardianException;

try {
    $numericRangeRuleGuardian->checkBetween($value, $min, $max);
} catch (GuardianException $exception) {
    // handles GuardianValidationException and GuardianExecutingRuleException
}

use Aegisora\Guardian\Exceptions\GuardianValidationException;

try {
    $numericRangeRuleGuardian->checkGreaterThan(2, 3);
} catch (GuardianValidationException $exception) {
    echo $exception->getRuleCode(); // "numeric_range_rule"
}

/**
 * @param mixed $value
 * @param numeric $min
 */
public function checkGreaterThan(
    $value,
    $min,
    ?\Throwable $exception = null
): void

/**
 * @param mixed $value
 * @param numeric $min
 */
public function checkGreaterThanOrEqualTo(
    $value,
    $min,
    ?\Throwable $exception = null
): void

/**
 * @param mixed $value
 * @param numeric $max
 */
public function checkLessThan(
    $value,
    $max,
    ?\Throwable $exception = null
): void

/**
 * @param mixed $value
 * @param numeric $max
 */
public function checkLessThanOrEqualTo(
    $value,
    $max,
    ?\Throwable $exception = null
): void

/**
 * @param mixed $value
 * @param numeric $min
 * @param numeric $max
 */
public function checkBetween(
    $value,
    $min,
    $max,
    ?\Throwable $exception = null
): void

/**
 * @param mixed $value
 * @param numeric $min
 * @param numeric $max
 */
public function checkBetweenExclusive(
    $value,
    $min,
    $max,
    ?\Throwable $exception = null
): void

/**
 * @param mixed $value
 * @param numeric $min
 * @param numeric $max
 */
public function checkBetweenMinExclusive(
    $value,
    $min,
    $max,
    ?\Throwable $exception = null
): void

/**
 * @param mixed $value
 * @param numeric $min
 * @param numeric $max
 */
public function checkBetweenMaxExclusive(
    $value,
    $min,
    $max,
    ?\Throwable $exception = null
): void

$numericRangeRuleGuardian->checkBetween(3, 2, 4);

$numericRangeRuleGuardian->checkBetween(5, 2, 4, new InvalidValueException());