`
linleizi
  • 浏览: 230649 次
  • 性别: 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 是一个强大的 PHP Web 应用程序框架,它提供了高度可重用的组件和严格的架构,使得开发者能够创建...同时,这也为学习 Symfony2 和 FOSUserBundle 提供了一个实用的起点,有助于加深对这两个强大工具的理解。

    symfony权威指南

    1. **Symfony 框架基础**:了解 Symfony 的设计理念,包括 MVC(模型-视图-控制器)架构,以及如何设置开发环境和创建第一个 Symfony 项目。 2. **路由系统**:掌握定义和管理 URL 路由的方法,理解路由参数、...

    symfony-starter-kit:Symfony 2.7入门套件

    Symfony2入门套件一个Symfony项目,用于通过用户控制,引导程序来启动新系统。 包括: Symfony 2.7 Bootstrap 3.x FosUserBundle jQuery 11.x 需求PHP 5.5以上MySQL 2. + 作曲家Github帐号PHP扩展安装克隆项目$ git ...

    基于PHP的Symfony高性能php框架源码.zip

    总的来说,Symfony是一个全面且成熟的PHP框架,它为开发高质量的PHP应用提供了坚实的基础,而这个压缩包中的源码是深入学习和研究Symfony的好资料。通过研究源码,开发者不仅可以提升技术水平,还能更好地理解和运用...

    symodo:Symfony 4 + Mongo + Docker入门项目

    FOSUserBundle并对其进行配置。 自动创建默认管理员。 添加主页和管理页面以测试一切正常 安装 您只需要执行以下步骤: $ git clone git@github.com:desaroger/symodo.git $ cd symodo $ ./bin/initialize.sh $ ./...

    base-symfony:Symfony 基础

    正在创建 Symfony 基础以支持机构网站的创建。 系统正在开发中。 安装的组件 bower (bootstrap, jquery) 基础仪表板主题,已经在 bower 中配置了依赖项 所有的 使用学说扩展和 fosuserbundle 安装下一次提交 ... ...

    骨架:Symfony骨架

    "Symfony骨架"是Symfony框架的初始项目模板,旨在为开发者提供一个快速启动新项目的基础结构。这个骨架包含了构建一个基本的Symfony应用所需的所有核心组件和配置,使得开发者可以专注于业务逻辑,而不是重复搭建...

    symfony-quick_tour

    通过"symfony-quick_tour",开发者可以快速掌握Symfony的基本用法,进一步深入学习后,还可以利用其丰富的扩展库和插件,如FOSUserBundle(用户管理)、VichUploaderBundle(文件上传)等,来满足更复杂的项目需求。...

    MonAgence:引诱àSymfony

    2. **服务容器**:Symfony的核心组件之一,负责管理应用的所有服务,如数据库连接、缓存管理等,实现依赖注入,提高代码的可测试性和可维护性。 3. **路由系统**:定义URL与控制器之间的映射,使得请求能正确地到达...

    罗蒂安多兰

    - PHP语法简洁,学习曲线较平缓,适合初学者入门。 2. PHP环境配置: - 开发者通常使用XAMPP或WAMP等集成开发环境来搭建PHP运行环境,它们包含了Apache服务器、MySQL数据库和PHP解析器。 3. PHP语法特性: - ...

    gr

    在Symfony中实现这样的功能,开发者可能利用了Doctrine ORM来处理数据库操作,Twig来渲染前端视图,以及可能使用了像FOSUserBundle这样的第三方bundle来处理用户认证和授权。 "rgr-di-master"可能是项目的子目录...

Global site tag (gtag.js) - Google Analytics