Как в Symfony проверить на НЕ авторизованность пользователя?

В Symfony есть несколько способов проверить, не авторизован ли пользователь. Наиболее распространенный способ - использование аннотации @Security в контроллерах или методах контроллеров.

Аннотация @Security позволяет определить необходимые права доступа пользователя для доступа к определенному контроллеру или методу контроллера. Если пользователь не имеет необходимых прав доступа, Symfony выдаст исключение AccessDeniedException.

Однако, в вашем случае, вы хотите проверить на неавторизованность пользователя, а не на отсутствие необходимых прав доступа. Для этого можно использовать сервис security.authorization_checker.

Проверка на неавторизованность пользователя осуществляется с помощью метода isGranted('IS_AUTHENTICATED_ANONYMOUSLY'). Если пользователь не авторизован, данный метод вернет false. Пример использования:

use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentSecurityCoreExceptionAccessDeniedException;

class UserController extends AbstractController
{
    public function profile()
    {
        $isAuthenticated = $this->isGranted('IS_AUTHENTICATED_ANONYMOUSLY');
        
        if (!$isAuthenticated) {
            throw new AccessDeniedException();
        }
        
        // ваш код для действий, доступных только авторизованным пользователям
        
        return $this->render('user/profile.html.twig');
    }
}

В данном примере, если пользователь не авторизован, будет выброшено исключение AccessDeniedException, и пользователю будет показана страница с соответствующим сообщением об ошибке.

Также существуют другие методы для проверки разных условий, связанных с авторизацией пользователя. Например, метод isGranted('ROLE_USER') проверяет, имеет ли пользователь роль ROLE_USER, а isGranted('ROLE_ADMIN') - проверяет, имеет ли пользователь роль ROLE_ADMIN. Вы можете использовать эти методы в зависимости от ваших конкретных требований и логики приложения.