在 Ubuntu 安裝 Symfony 2.1 + FOSUserBundle

edited 十一月 -1 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.