Хроники Yii3
635 subscribers
46 photos
1.72K links
Описание процесса разработки фреймворка из первых рук 😎

Обсуждение:
https://t.iss.one/yii3ru

Сводка по всем пакетам:
https://www.yiiframework.com/status/3.0

Поддержать разработчиков:
https://opencollective.com/yiisoft
Download Telegram
#yiisoftHydratorValidator #ПервыйРелиз #МажорныйРелиз #Релиз

🎁 Yii Validating Hydrator 1.0

Валидирующий гидратор — это декоратор для гидратора, который позволяет выполнить валидацию сырых данных перед наполнением объекта и валидацию самого объекта после гидрации.

Это полезно, когда входные данные поступают от пользователя, а вам нужно их проверить и получить валидный DTO.

Пример DTO:

use Yiisoft\Hydrator\Validator\Attribute\Validate;
use Yiisoft\Hydrator\Validator\ValidatedInputInterface;
use Yiisoft\Hydrator\Validator\ValidatedInputTrait;
use Yiisoft\Validator\Rule\Email;
use Yiisoft\Validator\Rule\Required;

final class InputDto implements ValidatedInputInterface
{
use ValidatedInputTrait;

#[Email]
private string $email;

#[Validate(new Required())]
private string $name;
}


Пример использования в контроллере:

use Yiisoft\Hydrator\HydratorInterface;
use Yiisoft\Hydrator\Validator\ValidatingHydrator;

public function actionEdit(
RequestInterface $request,
ValidatingHydrator $hydrator,
): ResponseInterface
{
$data = $request->getParsedBody();
$inputDto = $hydrator->create(InputDto::class, $data);

if (!$inputDto->getValidationResult()->isValid()) {
// Validation didn't pass :(
}

// Everything is fine. You can use $inputDto now.
}
👍22👾3
#yiisoftHydratorValidator #МажорныйРелиз #Релиз

🎁 Yii Validating Hydrator 2.0

• Метод ValidatedInputInterface::getValidatedInput() теперь всегда возвращает объект результата валидации, а если его нет, то будет брошено исключение LogicException.
👍5👾2
#yiisoftHydratorValidator #ПатчРелиз #Релиз

🎁 Yii Validating Hydrator 2.0.1

• Добавлена поддержка yiisoft/validator версии ^2.0.
👍6👾3