Maison >développement back-end >tutoriel php >Gestion de base des utilisateurs dans Symfony2 avec FosuserBundle

Gestion de base des utilisateurs dans Symfony2 avec FosuserBundle

Joseph Gordon-Levitt
Joseph Gordon-Levittoriginal
2025-02-16 09:51:09410parcourir

Ce tutoriel montre comment intégrer FosuserBundle dans un projet Symfony pour l'authentification et la gestion des utilisateurs. FosuserBundle simplifie l'enregistrement des utilisateurs, la connexion, les réinitialisations du mot de passe et la gestion du profil, en tirant parti du système de sécurité de Symfony.

Caractéristiques clés de FosuserBundle:

  • construit sur le système de sécurité de Symfony.
  • prend en charge MongoDB et Orms comme la doctrine et propulser.
  • Configuration minimale et modifications de code requises pour l'intégration.
  • modèles extensibles et personnalisables pour une expérience utilisateur personnalisée.
  • fonctionnalités comme la confirmation par e-mail, les réinitialisations du mot de passe et l'édition de profil.
  • prend en charge la sécurité basée sur les rôles de Symfony.

(Image: la configuration améliorée de la propriété)

Basic User Management in Symfony2 with FOSUserBundle

Configuration du projet Symfony:

Ce guide utilise Homestead améliorée. Ajoutez un nouveau site à votre fichier Homestead.yml:

<code class="language-yaml">sites:
    - map: symfonylogin.app
      to: /home/vagrant/Code/SymfonyLogin/web
      type: symfony
databases:
    - symfony</code>

Ajouter 192.168.10.10 symfonylogin.app à votre fichier /etc/hosts. Démarrer la machine virtuelle avec vagrant up.

Installez le programme d'installation de Symfony dans la machine virtuelle en utilisant vagrant ssh et ces commandes:

<code class="language-bash">curl -LsS http://symfony.com/installer > symfony
sudo mv symfony /usr/local/bin/symfony
chmod a+x /usr/local/bin/symfony</code>

Créez une nouvelle application Symfony:

<code class="language-bash">cd Code
symfony new SymfonyLogin</code>

Configurez parameters.yml avec votre base de données et les paramètres de messagerie. Accédez à l'application Skeleton à http://symfonylogin.app. (Remarque: Pour Vagrant, vous devrez peut-être ajuster app_dev.php pour inclure votre IP hôte.)

Intégration de FosuserBundle:

  1. Installation: Utilisez le compositeur:

    <code class="language-bash">composer require friendsofsymfony/user-bundle "~2.0@dev"</code>
  2. Enregistrement du faisceau: dans AppKernel.php, ajouter new FOSUserBundleFOSUserBundle() au tableau $bundles.

  3. Configuration (config.yml):

    Activer le traducteur:

    <code class="language-yaml">translator:      { fallbacks: ["%locale%"] }</code>

    Configurer la sécurité dans security.yml:

    <code class="language-yaml">security:
        encoders:
            AppBundle\Entity\User: bcrypt
        # ... (rest of security configuration)</code>

    Ajouter une configuration FosuserBundle:

    <code class="language-yaml">fos_user:
        db_driver: orm
        firewall_name: main
        user_class: AppBundle\Entity\User
        from_email:
            address:     admin@example.com
            sender_name:    Example.com
        registration:
            confirmation:
                enabled: true
                template:   FOSUserBundle:Registration:email.txt.twig</code>
  4. Entité utilisateur (src/AppBundle/Entity/User.php): Créer une entité utilisateur étendant FOSUserBundleModelUser:

    <code class="language-php"><?php
    // ... (Entity code as in original example)
    ?></code>
  5. Mettre à jour le schéma de la base de données:

    <code class="language-bash">php app/console doctrine:schema:update --force</code>
  6. Imoutes d'importation (routing.yml):

    <code class="language-yaml">fos_user:
        resource: "@FOSUserBundle/Resources/config/routing/all.xml"</code>

(image: formulaire d'enregistrement par défaut)

Basic User Management in Symfony2 with FOSUserBundle

Modèles de personnalisation:

Créer app/Resources/FOSUserBundle/views/Registration/ et copier les modèles nécessaires de vendor/friendsofsymfony/user-bundle/Resources/views/Registration/. Modifiez ces modèles pour personnaliser l'apparence du formulaire d'enregistrement. Les modifications des exemples à register.html.twig et register_content.html.twig sont affichées dans l'exemple d'origine.

(Image: formulaire d'enregistrement personnalisé)

Basic User Management in Symfony2 with FOSUserBundle

Personnalisation supplémentaire:

  • Traduction: Personnaliser les fichiers de traduction dans app/Resources/translations/.
  • Connexion: La fonctionnalité de connexion par défaut est suffisante pour de nombreuses applications.
  • Réinitialisation du mot de passe: La fonctionnalité de réinitialisation du mot de passe est intégrée.
  • Profil utilisateur: Personnalisez le modèle de page de profil.

Ce résumé amélioré fournit une explication plus concise et organisée du processus d'intégration FosuserBundle, tout en conservant les informations et les images clés de l'entrée d'origine. La section FAQ est omise par la concision car le tutoriel lui-même aborde de manière exhaustive ces points.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn