for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Smoren\Validator\Factories;
use Smoren\Validator\Checks\Check;
use Smoren\Validator\Interfaces\CheckInterface;
class CheckBuilder
{
/**
* @var string
*/
protected string $name;
* @var callable
protected $predicate;
* @var array<string, mixed>
protected array $params = [];
* @var array<string, callable>
protected array $calculatedParams = [];
* @var array<CheckInterface>
protected array $dependencies = [];
* @param string $name
* @return self
public static function create(string $name): self
return new self($name);
}
* @return CheckInterface
public function build(): CheckInterface
return new Check(
$this->name,
$this->predicate,
$this->params,
$this->calculatedParams,
$this->dependencies
);
* @param callable $predicate
* @return $this
public function withPredicate(callable $predicate): self
$this->predicate = $predicate;
return $this;
* @param array<string, mixed> $params
public function withParams(array $params): self
$this->params = $params;
* @param array<string, callable> $calculatedParams
public function withCalculatedParams(array $calculatedParams): self
$this->calculatedParams = $calculatedParams;
* @param array<CheckInterface> $dependencies
public function withDependencies(array $dependencies): self
$this->dependencies = $dependencies;
private function __construct(string $name)
$this->name = $name;
$this->predicate = fn () => true;