Метод hasBadge класса Passport
Метод hasBadge класса Passport проверяет, был ли добавлен в паспорт бейдж указанного класса. Первым параметром передаётся имя класса бейджа, наличие которого нужно проверить. Метод возвращает true, если бейдж найден, и false в противном случае.
Синтаксис
public function hasBadge(string $badgeFqcn): bool
Пример
Давайте создадим паспорт с бейджем UserBadge и проверим его наличие:
<?php
namespace AppSecurity;
use SymfonyComponentSecurityHttpAuthenticatorPassportBadgeUserBadge;
use SymfonyComponentSecurityHttpAuthenticatorPassportPassport;
class PassportChecker
{
public function check(): void
{
$passport = new Passport();
$passport->addBadge(new UserBadge('user'));
$res = $passport->hasBadge(UserBadge::class);
var_dump($res);
}
}
?>
Результат выполнения кода:
bool(true)
Пример
Давайте проверим наличие бейджа, который не был добавлен в паспорт:
<?php
namespace AppSecurity;
use SymfonyComponentSecurityHttpAuthenticatorPassportBadgeCsrfTokenBadge;
use SymfonyComponentSecurityHttpAuthenticatorPassportBadgeUserBadge;
use SymfonyComponentSecurityHttpAuthenticatorPassportPassport;
class PassportChecker
{
public function check(): void
{
$passport = new Passport();
$passport->addBadge(new UserBadge('user'));
$res = $passport->hasBadge(CsrfTokenBadge::class);
var_dump($res);
}
}
?>
Результат выполнения кода:
bool(false)