Symfony 3.4 - несуществующий сервис при установке FOSUserBundle

Я только что начал новый пустой проект с использованием Symfony 3.4 и прежде всего настроил FOSUserBundle после этой страницы Документация.

Я дважды пытался удалить все и снова начать с нуля, но при очистке кеша у меня возникла эта ошибка:

In CheckExceptionOnInvalidReferenceBehaviorPass.php line 31:

  The service "security.authentication.provider.dao.main" has a dependency on a non-existent service "fos_user.user_checker". 

config.yml

[...]
fos_user:
    db_driver: orm # other valid values are 'mongodb' and 'couchdb'
    firewall_name: main
    user_class: AppBundle\Entity\User
    from_email:
        address: "%mailer_user%"
        sender_name: "%mailer_user%"

parameters.yml

parameters:
    database_path: '%kernel.project_dir%/var/data/data.sqlite'
    mailer_transport: smtp
    mailer_host: smtp.mailtrap.io
    mailer_user: ***
    mailer_password: ***
    secret: ***

routing.yml

app:
    resource: '@AppBundle/Controller/'
    type: annotation
fos_user:
    resource: "@FOSUserBundle/Resources/config/routing/all.xml"

security.yml

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: bcrypt

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    firewalls:
        main:
            pattern: ^/
            user_checker: fos_user.user_checker
            form_login:
                provider: fos_userbundle
                csrf_token_generator: security.csrf.token_manager

            logout:       true
            anonymous:    true

    access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/, role: ROLE_ADMIN }

Очевидно, я добавил new FOS\UserBundle\FOSUserBundle(), в AppKernel.php

$bundles = [
            new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
            new Symfony\Bundle\SecurityBundle\SecurityBundle(),
            new Symfony\Bundle\TwigBundle\TwigBundle(),
            new Symfony\Bundle\MonologBundle\MonologBundle(),
            new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
            new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
            new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
            new FOS\UserBundle\FOSUserBundle(),
            new AppBundle\AppBundle(),
        ];

Я использую версию 2.0 из FOSUserBundle и Symfony 3.4.

Вы пробовали закомментировать строку user_checker: fos_user.user_checker из security.yml и обновить?

Dan Costinel 24.09.2018 22:54

Блин, это решает ошибку. но .. почему в документации есть этот параметр?

andreaem 24.09.2018 23:45

Я тоже спрашиваю ... Почему в документации ...: S

JuliSmz 07.10.2018 19:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
2 038
1

Ответы 1

Для Symfony 3.4 и FOSUserBundle 2.1 эта проблема, похоже, продолжает существовать.

Исправить: Измените следующее в security.yml

security:
    firewalls:
        main:
            user_checker: fos_user.user_checker

к

security:
    firewalls:
        main:
            user_checker: security.user_checker

Другие вопросы по теме