FriendsOfSymfony/UserBundle をインストールしてみましょう。
ちなみにバンドルはKnp Bundlesなどを探せば見つける事ができます。
FosUserBundleをダウンロード
Step 1: Download FOSUserBundle using composer
Composerから行います。
php composer.phar require friendsofsymfony/user-bundle "~2.0@dev"
ダウンロードが完了したら、アプリケーションカーネルにバンドルを登録します。
FOSUserBundle をカーネルに設定
<?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です。