FOS Bundles
Installer FOSBundle avec composer
Tout d'abord installez curl et php5-curl
sudo aptitude install curl sudo aptitude install php5-curl
Depuis le dossier racine de votre projet exécutez la commande suivante:
php composer.phar require friendsofsymfony/user-bundle "[email protected]
Il vous faudra ensuite activer le bundle dans le fichier app/AppKernel.php
public function registerBundles() { $bundles = array( // ... new FOS\UserBundle\FOSUserBundle(), ); }
# app/config/security.yml security: encoders: FOS\UserBundle\Model\UserInterface: sha512 role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: ROLE_ADMIN providers: fos_userbundle: id: fos_user.user_provider.username firewalls: main: pattern: ^/ form_login: provider: fos_userbundle csrf_provider: form.csrf_provider 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 }
# app/config/config.yml fos_user: db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel' firewall_name: main user_class: Acme\UserBundle\Entity\User
Vous pouvez créer l'entité User en ligne de commande et y ajouter les champs personnalisés que vous désirez:
php app/console generate:doctrine:entity
# app/config/routing.yml fos_user: resource: "@FOSUserBundle/Resources/config/routing/all.xml"
php app/console doctrine:schema:update --force
Vous pourrez par la suite créer un utiliser en ligne de commande:
php app/console fos:user:create
Le formulaire d'identification
Votre formulaire est maintenant disponible à l'adresse /login
Ecraser le template par défaut de FOSUSerBundle
Ce qui nous vient tout de suite à l'esprit quand on voit le formulaire d'identification de base de FOSUSerBundle c'est : "Mon dieu que c'est moche!". Rassurez-vous, il est possible d'écraser le template.
Pouur cela, créez le fichier app/Resources/FOSUSerBundle/layout.html.twig
{% extends "MyAwesomeBundle:Front:layout.html.twig" %} {% block content %} {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %} {{app.user.username}} {% else %} {% endif %} <form action="{{ path("fos_user_security_check") }}" method="post" class="form-signin"> <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" /> <label for="username">{{ 'Username'|trans({}, 'FOSUserBundle') }}</label> <input type="text" id="username" name="_username" class="form-control" value="{{ last_username }}" /> <label for="password">{{ 'Password'|trans({}, 'FOSUserBundle') }}</label> <input type="password" id="password" name="_password" /> <input type="checkbox" id="remember_me" name="_remember_me" value="on" /> <label for="remember_me">{{ 'Se souvenir de moi'|trans({}, 'FOSUserBundle') }}</label> <input type="submit" id="_submit" class="btn btn-default btn-signin" name="_submit" value="{{ 'Entrer'|trans({}, 'FOSUserBundle') }}" /> </form> {% endblock content %}
Liens utiles
Pour plus d'infos : FOSBundleUser
Configurer UserBundle en quelques secondes fosuserbundle
UNE QUESTION SUR L'ARTICLE?
Initiation
HTML

CSS

PHP

PHP Avancé

Bootstrap

javascript / jQuery

MySQL

Symfony 2

Prestashop

Optimiser
