`
linleizi
  • 浏览: 227409 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Symfony2 FOSUserBundle入门学习

 
阅读更多
  • FOSUserBundle简介

提供在Symfony2用户系统的支持,方便灵活的框架,用户管理旨在处理用户注册,密码找回等共通业务。

 

特点:

用户可以通过Doctrine ORM, MongoDB/CouchDB ODM or Propel创建存储

支持用户通过邮箱注册

支持密码重置

包括单元测试

 

*该框架不支持权限认证,但是可以通过 user provider 使用SecurityBundle

 

  • 安装

当前版本需要Symfony2.1 +,如果您正在使用Symfony的2.0.x版本,请使用束的1.2.x版本。

 

如果想使用国际化,需要确认translator已经启用。

 

# app/config/config.yml
framework:
    translator: ~
 

 

 快速安装方法:

 

1. 修改引用工程的composer.json,如下:

 

    "require": {
        //......
       "friendsofsymfony/user-bundle": "1.3.5"
    },
 

 

2. 执行命令[composer update]下载该框架

 

3. 修改代码,使该框架有效,如下:

 

<?php
// app/AppKernel.php

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

 

 4. 创建自己的user类,该框架提供了父类,有很多参数,可以很容易创建自己的entity。

a. 从Model文件夹继承父User类

b. 创建id字段,因为从父类继承,数据必须声明为protected类型

c. Doctrine ORM User Class,Annotations

 

<?php
// src/Portal/LoginUserBundle/Entity
namespace Portal\LoginUserBundle\Entity;

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

/**
 * Person
 *
 * @ORM\Table(name="for_user")
 * @ORM\Entity(repositoryClass="Portal\LoginUserBundle\Entity\UserRepository")
 */
class User extends BaseUser
{
    public function __construct()
    {
        parent::__construct();
        // own logic
    }

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(name="mail", type="string")
     **/
    protected $email;

    /**
     * @ORM\Column(name="password", type="string")
     **/
    protected $password;
 }
 * user是数据库保留的关键字,所以最好不要用为表名

 

 

5. 执行命令[php app/console doctrine:generate:entities]生成get和set方法

6. 为了让框架的security.yml

# 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 }

7. 设置config文件

# app/config/config.yml
fos_user:
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
    firewall_name: main
    user_class: Portal\LoginUserBundle\Entity\User

   

8. 设置routing

# app/config/routing.yml
fos_user_security:
    resource: "@FOSUserBundle/Resources/config/routing/security.xml"

fos_user_profile:
    resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
    prefix: /profile

fos_user_register:
    resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
    prefix: /register

fos_user_resetting:
    resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
    prefix: /resetting

fos_user_change_password:
    resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
    prefix: /profile

 *为了使用内置的电子邮件功能(确认账号,密码重置),你必须激活和配置SwiftmailerBundle。

9. 更新数据库表结构,[php app/console doctrine:schema:update --force

10. http://app.com/app_dev.php/login


 

 

 

 

 

  • 大小: 83.9 KB
分享到:
评论

相关推荐

    Symfony2-FOSUserBundle:带有 FOSUserBundle 的 Symfony2 基本应用程序

    Symfony2 + FOSUserBundle 这是一个基本的 Symfony2 框架 v2.1.7,安装并配置了流行的 FOSUserBundle 以与 MySQL 一起使用。

    Symfony2入门教程

    这是本人第一次尝试写教程,忘各位多多捧场

    Symfony2 Jobeet Day 2_ The Project PDF

    This day is about the project specifications.They are the same as in the original Jobeet tutorial so you can see a more detailed description and a mockup design ...Symfony2 Jobeet Day 2_ The Project PDF

    Symfony2 Cookbook

    Symfony2 技术类帮助图书,Symfony2 技术类帮助图书,Symfony2 技术类帮助图书,

    symfony2建立一个完整blog的例子

    国内symfony2的框架资料较少,很多都是symfony1.x的资料,当symfony2的框架改变非常大,为方便你我,分享一下学习过程中看过的资料,这个vblog的实例非常不错。

    symfony2常规操作

    symfony2常规操作,这是平时研究时积累下来的文档。

    symfony-jsonapi, 用于 Symfony 2和 Symfony 3的JSON API变压器包.zip

    symfony-jsonapi, 用于 Symfony 2和 Symfony 3的JSON API变压器包 Symfony json对于 Symfony 2和 Symfony 3 安装工具使用情况创建映射输出API响应JSON API请求JSON API响应与NelmioApiDocBund

    symfony2创建实体命令

    symfony2创建实体命令 四步骤

    Symfony2 常用命令和基本使用方法

    Symfony2 常用命令和基本使用方法,简单的说明,和实例。

    php框架 symfony 学习(英文)

    symfony是一个php的框架 本资源是学习这个框架的最好书籍。

    《Symfony权威指南》

    本书分成五篇:“基础知识”篇,包含所有的基本概念和开始symfony的基本知识;“核心架构”篇,讲述模型视图控制器(MVC)在symfony中的实现,以及如何用这样的三层结构模型建立页面和应用程序;“特殊功能”篇,...

    精通PHP Symfony2

    最牛叉的PHP框架,没有之一。 《精通Symfony2》,实乃phper居家旅行,吹牛装象的 必备神器!

    ClankBundle, 一个Symfony2包,用于 Ratchet web socket服务器.zip

    ClankBundle, 一个Symfony2包,用于 Ratchet web socket服务器 ClankBundleClank是一个Symfony2包,旨在在一个易于使用的应用程序架构中集成 web socket功能。socket.io 一样,它提供了服务器端和客户端代码,确保你...

    Symfony

    Symfony应用程序文档生成器

    symfony介绍.pdf

    著名的PHP开发框架 symfony是什么?symfony能做什么?使用symfony需要掌握哪些知识?此文档会解答这些问题。

    Symfony快速入门

    php的Symfony2框架的快速预览。主要包括MVC的各个方面,创建网页,写一个控制器等

    高性能PHP框架Symfony2经典入门教程

    主要介绍了高性能PHP框架Symfony2的入门教程,对于学习Symfony2的朋友有很好的学习借鉴价值,需要的朋友可以参考下

    scrumapp:简单的 Symfony2 Scrum 项目管理

    争吵简单的 Symfony2 Scrum 项目管理#设置 composer install-- 学说数据库架构: php app/console doctrine:schema:update --force——创建管理员用户: ...ADMIN)——设置应用程序: php app/console app:setup——

    Symfony学习十分钟入门经典教程

    Symfony是一个强大的基于PHP的Web开发框架,在这里我们用十分钟的时间来做一个简单的增删改查的程序, 任何不熟悉Symfony的人都可以通过这个教程完成自己的第一个Symfony程序。 如果需要这个样例程序的全部源代码,...

    Symfony quick tour 2.1

    Symfony是PHP框架中最强大的,完整实现了MVC三层结构,封装了所有东西,包括建立项目、应用、模块、刷新... Symfony绝对是开发大型复杂项目的首选,使用Symfony,将大大节约开发成本,并且多人协作的时,不会出现问题。

Global site tag (gtag.js) - Google Analytics