在 Ubuntu 安裝 Symfony 2.1 + FOSUserBundle

edited 十月 2013 in 程式架構
Symfony 2.1 開始改用 composer 來管理套件( http://getcomposer.org/ ),比起之前要改一堆設定然後又一堆問題的方式友善許多,但也因此,很多文件提到的東西都暫時失效了,還得等官方團隊有空的時候去更新

我原本是直接下載 Symfony_Standard_Vendors_2.1.0-BETA1.tgz 來用,但是發現這個版本在執行 composer.phar 時會有問題,所以就砍掉用 composer.phar 重來一遍...

步驟:

1. 取得 composer.phar
curl -s http://getcomposer.org/installer | php

2. 透過 composer 下載 Symfony 2.1 開發中版本
composer.phar create-project symfony/framework-standard-edition /home/kiang/public_html/Symfony

3. 設定權限
cd /home/kiang/public_html/Symfony
sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs

4. 透過網頁介面進行資料庫設定
http://localhost/~kiang/Symfony/web/app_dev.php/_configurator

5. 修改 composer.json ,在 require: {} 裡面加入 "friendsofsymfony/user-bundle": "*" (注意逗號的使用)

6. 取得 FOSUserBundle 程式
composer.phar update

7. 掛載 FOSUserBundle
<?php
// app/AppKernel.php

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

8. 產生 Bundle ,在互動模式裡面想辦法生出 Acme/UserBundle 整個目錄
app/console generate:bundle

9. 產生 Entity ,在互動模式裡面想辦法生出 AcmeUserBundle:User
app/console doctrine:generate:entity

10. 修改 User Entity 來從 FOSUserBundle 繼承
<?php
// src/Acme/UserBundle/Entity/User.php
namespace Acme\UserBundle\Entity;

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

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


    public function __construct()
    {
        parent:GDN__construct();
        // your own logic
    }
}

11. 產生使用者資料表
app/console doctrine:schema:update --force

到這裡就算是把 FOSUserBundle 裝好了,後續的操作就看看文件吧
https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=6717
Sign In or Register to comment.