РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
338 of 1361 menu

Правило PasswordStrength

Правило PasswordStrength относится к группе ограничений (constraints) и вешается на свойство сущности или на поле формы. Оно проверяет, что пароль соответствует заданным требованиям безопасности: минимальной длине, наличию букв в обоих регистрах, цифр и специальных символов. Первым параметром передаётся массив опций, среди которых можно указать минимальную длину, минимальное количество символов каждого типа и сообщение об ошибке.

Синтаксис

#[Assert\PasswordStrength( minLength: 8, minLowercase: 1, minUppercase: 1, minDigits: 1, minSpecialChars: 1, message: '...' )]

Пример

Давайте создадим сущность User со свойством password и повесим на него правило PasswordStrength:

<?php namespace App\Entity; use Symfony\Component\Validator\Constraints as Assert; class User { #[Assert\PasswordStrength( minLength: 8, minLowercase: 1, minUppercase: 1, minDigits: 1, minSpecialChars: 1 )] private string $password; public function setPassword(string $password): self { $this->password = $password; return $this; } public function getPassword(): string { return $this->password; } } ?>

Пример

Давайте проверим пароль 'abcde' с помощью валидатора:

<?php namespace App\Controller; use App\Entity\User; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Validator\Validator\ValidatorInterface; class UserController extends AbstractController { #[Route('/user/validate', name: 'user_validate')] public function validate(ValidatorInterface $validator): Response { $user = new User(); $user->setPassword('abcde'); $errors = $validator->validate($user); if (count($errors) > 0) { return new Response((string) $errors); } return new Response('password is valid'); } } ?>

Результат выполнения кода:

Object(App\Entity\User).password: This value is too short. It should have 8 characters or more.

Пример

Давайте проверим пароль 'Abcde123!', который соответствует всем требованиям:

<?php namespace App\Controller; use App\Entity\User; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Validator\Validator\ValidatorInterface; class UserController extends AbstractController { #[Route('/user/validate', name: 'user_validate')] public function validate(ValidatorInterface $validator): Response { $user = new User(); $user->setPassword('Abcde123!'); $errors = $validator->validate($user); if (count($errors) > 0) { return new Response((string) $errors); } return new Response('password is valid'); } } ?>

Результат выполнения кода:

"password is valid"

Смотрите также

  • правило NotCompromisedPassword,
    которое проверяет, что пароль не был скомпрометирован
  • правило Length,
    которое задаёт минимальную и максимальную длину строки
  • правило Regex,
    которое проверяет строку по регулярному выражению
  • класс Form,
    который представляет форму и управляет её полями
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить