FriendsOfSymfony/UserBundle をインストールしてみましょう。

ちなみにバンドルはKnp Bundlesなどを探せば見つける事ができます。

FosUserBundleをダウンロード

Step 1: Download FOSUserBundle using composer

Composerから行います。

php composer.phar require friendsofsymfony/user-bundle "~2.0@dev"

ダウンロードが完了したら、アプリケーションカーネルにバンドルを登録します。

FOSUserBundle をカーネルに設定

Step 2: Enable the bundle

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new FOS\UserBundle\FOSUserBundle(),
    );
}

User エンティティを定義

Step 3: Create your User class

<?php
// User.php
namespace Quartet\Bundle\BlogBundle\Entity;


use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User extends BaseUser
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
}

セキュリティ設定

Step 4: Configure your application's security.yml

# app/config/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:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false


        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: 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 }

FosUserBundleの設定

Step 5: Configure the FOSUserBundle

# app/config/config.yml に追記
fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Quartet\Bundle\BlogBundle\Entity\User

ルーティングの読み込み

Step 6: Import FOSUserBundle routing files

# app/config/routing.yml に追記
fos_user:
    resource: "@FOSUserBundle/Resources/config/routing/all.xml"

データベーススキーマの更新

Step 7: Update your database schema

$ php app/console doctrine:schema:update --force

これでインストールは完了です。 読み込みしたルーティングのアドレスにアクセスして画面が表示されればOKです。