大多數(shù)的 bundles 都提供自己的安裝指南,然而,基本的 bundles 安裝步驟都是一樣的:
依賴是由 Composer 管理的,所以如果你不太了解 Composer,你可以在它的相關(guān)文檔中學(xué)習(xí)一些基本理論。這包括了兩步:
bundle 的 README 文件(例如 FOSUserBundle通常會告訴你它的名字(例如 friendsofsymfony/user-bundle)。如果不行,你可以在 Packagist.org 網(wǎng)站上搜索 bundle。
尋找 bundle?試一試在 KnpBundles.com 網(wǎng)站上搜索:非官方的 Symfony Bundles 的檔案館。
既然你知道了包的名字,你可以通過 Composer 安裝它:
$ composer require friendsofsymfony/user-bundle
這個將會為你的工程選擇最佳的版本,添加到 composer.json 并且下載它的代碼到 vendor/ 目錄下。如果你需要特定的版本,將它作為 composer require 命令的第二個參數(shù):
$ composer require friendsofsymfony/user-bundle "~2.0"
這時候,bundle 已經(jīng)安裝在你的 Symfony 工程(在 vendor/friendsofsymfony/ 之中) 并且自動裝載識別出了它的類?,F(xiàn)在你需要做的唯一一件事就是在 AppKernel 中注冊 bundle:
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
// ...
public function registerBundles()
{
$bundles = array(
// ...
new FOS\UserBundle\FOSUserBundle(),
);
// ...
}
}
在一些特別的案例中,你可能想讓 bundle 僅僅在開發(fā)環(huán)境下可用。舉例來說,DoctrineFixturesBundle 幫助你來加載虛擬數(shù)據(jù)——一些你可能只想在開發(fā)的時候做的。只是在 dev 和 test 環(huán)境下裝載 bundle,按照下面的方法來注冊 bundle:
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
// ...
public function registerBundles()
{
$bundles = array(
// ...
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle();
}
// ...
}
}
對于 bundle 來說需要一些額外的設(shè)置或者在 app/config/config.yml 的調(diào)整是很正常的事。bundle 的說明文檔會告訴你有關(guān)的設(shè)置,但是你也需要通過 config:dump-reference 命令來獲取一些 bundle 的設(shè)置指導(dǎo):
$ app/console config:dump-reference AsseticBundle
代替 bundle 的全名,你也可以用使用過的短名字作為 bundle 的設(shè)置的根:
$ app/console config:dump-reference assetic
輸出結(jié)果如下所示:
assetic:
debug: %kernel.debug%
use_controller:
enabled: %kernel.debug%
profiler: false
read_from: %kernel.root_dir%/../web
write_to: %assetic.read_from%
java: /usr/bin/java
node: /usr/local/bin/node
node_paths: []
# ...
在這里,閱讀你的全新的 bundle 的 README 文件來看看接下來做什么。玩的開心!