chore: Типы
This commit is contained in:
parent
1b6630e5f5
commit
481f76add4
5 changed files with 25 additions and 11 deletions
|
|
@ -1,13 +1,14 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace ctiso\Validator\Rule;
|
namespace ctiso\Validator\Rule;
|
||||||
|
|
||||||
use ctiso\Collection;
|
use ctiso\Collection;
|
||||||
|
|
||||||
abstract class AbstractRule
|
abstract class AbstractRule
|
||||||
{
|
{
|
||||||
public string $field;
|
public string $field;
|
||||||
protected ?string $errorMsg;
|
protected ?string $errorMsg;
|
||||||
/** @var object */
|
/** @var RuleContext */
|
||||||
protected $ctx;
|
protected $ctx;
|
||||||
|
|
||||||
public function __construct(string $field, ?string $errorMsg = null)
|
public function __construct(string $field, ?string $errorMsg = null)
|
||||||
|
|
@ -48,7 +49,7 @@ abstract class AbstractRule
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param object $ctx
|
* @param RuleContext $ctx
|
||||||
*/
|
*/
|
||||||
public function setContext($ctx): void
|
public function setContext($ctx): void
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,9 @@
|
||||||
* Проверка на число
|
* Проверка на число
|
||||||
*/
|
*/
|
||||||
namespace ctiso\Validator\Rule;
|
namespace ctiso\Validator\Rule;
|
||||||
use ctiso\Validator\Rule\AbstractRule,
|
|
||||||
ctiso\Collection;
|
use ctiso\Validator\Rule\AbstractRule;
|
||||||
|
use ctiso\Collection;
|
||||||
|
|
||||||
class Alpha extends AbstractRule
|
class Alpha extends AbstractRule
|
||||||
{
|
{
|
||||||
|
|
|
||||||
10
src/Validator/Rule/RuleContext.php
Normal file
10
src/Validator/Rule/RuleContext.php
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace ctiso\Validator\Rule;
|
||||||
|
use ctiso\Collection;
|
||||||
|
use ctiso\HttpRequest;
|
||||||
|
|
||||||
|
interface RuleContext {
|
||||||
|
function getMessage(): string;
|
||||||
|
function isUnique(string $field, mixed $status, Collection $collection): bool;
|
||||||
|
}
|
||||||
|
|
@ -3,8 +3,9 @@
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
namespace ctiso\Validator\Rule;
|
namespace ctiso\Validator\Rule;
|
||||||
use ctiso\Validator\Rule\AbstractRule,
|
|
||||||
ctiso\Collection;
|
use ctiso\Validator\Rule\AbstractRule;
|
||||||
|
use ctiso\Collection;
|
||||||
|
|
||||||
class Unique extends AbstractRule
|
class Unique extends AbstractRule
|
||||||
{
|
{
|
||||||
|
|
@ -15,7 +16,7 @@ class Unique extends AbstractRule
|
||||||
|
|
||||||
public function isValid(Collection $container, $status = null): bool
|
public function isValid(Collection $container, $status = null): bool
|
||||||
{
|
{
|
||||||
return $this->ctx->isUnique($container->get($this->field), $status, $container);
|
return $this->ctx->isUnique($container->getString($this->field), $status, $container);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,16 @@
|
||||||
* Проверка коллекции
|
* Проверка коллекции
|
||||||
*/
|
*/
|
||||||
namespace ctiso\Validator;
|
namespace ctiso\Validator;
|
||||||
use Exception,
|
use Exception;
|
||||||
ctiso\Validator\Rule\AbstractRule,
|
use ctiso\Validator\Rule\AbstractRule;
|
||||||
ctiso\Collection;
|
use ctiso\Validator\Rule\RuleContext;
|
||||||
|
use ctiso\Collection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @phpstan-type Rule array{
|
* @phpstan-type Rule array{
|
||||||
* validate?:string, // Описание правила см. формат правила ниже
|
* validate?:string, // Описание правила см. формат правила ниже
|
||||||
* name:string, // Имя переменой для проверки
|
* name:string, // Имя переменой для проверки
|
||||||
* context?:object
|
* context?:RuleContext
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
class Validator
|
class Validator
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue