Symfony FOSUserBundle Как сделать регистрацию пользователя

Чтобы создать простейшый модуль регистрации пользователя в Symfony, достаточно следовать инструкциям официальной документации по FOSuserBundle.

(Я использую БД PostgreSQL и Doctrine ORM)

  1. Класс User выглядит очень просто. Все необходимые поля уже описаны в базовом классе, который должен обяательно расширять Ваш класс. Только если Вы хотите добавить нестандартные поля (например, фамилия или паспортные данные), следует создавать эти поля в классе User.
    <?php
    // src/AppBundle/Entity/User.php
    
    namespace AppBundle\Entity;
    
    use FOS\UserBundle\Model\User as BaseUser;
    use Doctrine\ORM\Mapping as ORM;
    
    /**
     * @ORM\Entity
     * @ORM\Table(name="fos_user")
     */
    class User extends BaseUser
    {
        /**
         * @ORM\Id
         * @ORM\Column(type="integer")
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        protected $id;
    
        public function __construct()
        {
            parent::__construct();
            // Здесь Вы можете дополнить код своими инструкциями. Если таковые отсутствуют, метод конструктора можно опустить, он автоматически унаследуется от родителя
        }
    
        /**
         * @return int
         */
        public function getId(): int
        {
            return $this->id;
        }
    }
  2. Также потребуется настроить некоторые конфигурации

    У меня возникли некоторые расхождения с документацией только в части security.yml:

    security:
        firewalls:
           main:
              csrf_token_generator: security.csrf.token_manager
    

    строка

    csrf_provider: security.csrf.token_manager

    была заменена на

    csrf_token_generator: security.csrf.token_manager

    а также в config.yml изменена строка csrf_protection:

    framework:
        csrf_protection: true
  3. Создаём таблицу fos_user в БД(команда для doctrine):

    php bin/console doctrine:schema:update --force

  4. Макет готов!
    Страница авторизации: http://app.com/login
    Страница регистрации: http://app.com/register
  5. Вы также можете внести изменения в систему регистрации посредством переопределения стандартных классов.

Источники

Официальная документация Symfony
https://blog-tree.com/post/2014/06/symfo...
Пример на github