chore: Типы

This commit is contained in:
origami11@yandex.ru 2025-12-11 13:27:11 +03:00
parent 1b6630e5f5
commit 481f76add4
5 changed files with 25 additions and 11 deletions

View file

@ -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
{ {

View file

@ -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
{ {

View 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;
}

View file

@ -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);
} }
} }

View file

@ -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