PHP code example of kariricode / processor-pipeline

1. Go to this page and download the library: Download kariricode/processor-pipeline 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/ */

    

kariricode / processor-pipeline example snippets




use KaririCode\Contract\Processor\Processor;

class EmailNormalizer implements Processor
{
    public function process(mixed $input): string
    {
        return strtolower(trim($input));
    }
}

class EmailValidator implements Processor
{
    public function process(mixed $input): bool
    {
        return false !== filter_var($input, FILTER_VALIDATE_EMAIL);
    }
}

use KaririCode\ProcessorPipeline\ProcessorRegistry;
use KaririCode\ProcessorPipeline\ProcessorBuilder;

$registry = new ProcessorRegistry();
$registry->register('user', 'emailNormalizer', new EmailNormalizer());
$registry->register('user', 'emailValidator', new EmailValidator());

$builder = new ProcessorBuilder($registry);

$pipeline = $builder->buildPipeline('user', ['emailNormalizer', 'emailValidator']);

$email = '  [email protected]  ';
$normalizedEmail = $pipeline->process($email);
$isValid = $pipeline->process($normalizedEmail);

echo "Normalized: $normalizedEmail\n";
echo "Valid: " . ($isValid ? 'Yes' : 'No') . "\n";

use KaririCode\Contract\Processor\ConfigurableProcessor;

class AgeValidator implements ConfigurableProcessor
{
    private int $minAge = 0;
    private int $maxAge = 120;

    public function configure(array $options): void
    {
        if (isset($options['minAge'])) {
            $this->minAge = $options['minAge'];
        }
        if (isset($options['maxAge'])) {
            $this->maxAge = $options['maxAge'];
        }
    }

    public function process(mixed $input): bool
    {
        return is_numeric($input) && $input >= $this->minAge && $input <= $this->maxAge;
    }
}

$registry->register('user', 'ageValidator', new AgeValidator());
$pipeline = $builder->buildPipeline('user', ['ageValidator' => ['minAge' => 18, 'maxAge' => 100]]);

use KaririCode\Validator\Validators\EmailValidator;
use KaririCode\Validator\Validators\NotEmptyValidator;

$registry->register('validation', 'email', new EmailValidator());
$registry->register('validation', 'notEmpty', new NotEmptyValidator());

$validationPipeline = $builder->buildPipeline('validation', ['notEmpty', 'email']);

$isValid = $validationPipeline->process($userInput);