Как установить сторонние пакеты

Как установить сторонние пакеты

Большинство пакетов предоставляют собственные инструкции по установке. Однако, базовые шаги по установке пакета одинаковы:

A) Добавьте зависимости Composer

Зависимости управляются с помощью Composer, поэтому если Composer для вас нов, прочтите об основах в его документации. Это включает в себя два шага:

1) Узнайте имя пакета на Packagist

README пакета (напрмиер, FOSUserBundle) обычно сообщает вам его имя (например, friendsofsymfony/user-bundle). Если же нет, вы можете поискать пакет на сайте Packagist.org.

Tip

Ищете пакеты? Попробуйте поискать в теме symfony-bundle на GitHub.

2) Install the Bundle via Composer

Now that you know the package name, you can install it via Composer:

1
$ composer require friendsofsymfony/user-bundle

This will choose the best version for your project, add it to composer.json and download its code into the vendor/ directory. If you need a specific version, include it as the second argument of the composer require command:

1
$ composer require friendsofsymfony/user-bundle "~2.0"

B) Подключите пакет

На этом этапе пакет устаналивается в ваш проект Symfony (например, vendor/friendsofsymfony/) и автозагрузчик распознаёт его классы. Единственное, что вам теперь нужно сделать - зарегистрировать пакет в AppKernel:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    // ...

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

        // ...
    }
}

В некоторых редких случаях вы можете захотеть, чтобы пакет был подключен только в окружении разработки. Например, DoctrineFixturesBundle помогает загрузить фиктивные данные - что-то, что вы скорее всего захотите делать только при разработке. Чтобы загружать этот пакет только в окружениях dev и test, зарегистрируйте пакет таким образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// 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();
        }

        // ...
    }
}

C) Сконфигурируйте пакет

Пакету зачастую нужна дополнительная настройка или конфигурация в app/config/config.yml. Документация этого пакета сообщит вам о конфигурации, но вы также можете получить ссылку на конфигурацию пакета через команду config:dump-reference:

1
$ bin/console config:dump-reference AsseticBundle

Вместо полного имени пакета, вы также можете передать короткое имя, используемое в качестве корня конфигурации пакета:

1
$ bin/console config:dump-reference assetic

Вывод будет выглядеть так:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
assetic:
    debug:                '%kernel.debug%'
    use_controller:
        enabled:              '%kernel.debug%'
        profiler:             false
    read_from:            '%kernel.project_dir%/web'
    write_to:             '%assetic.read_from%'
    java:                 /usr/bin/java
    node:                 /usr/local/bin/node
    node_paths:           []
    # ...

Tip

Для сложных пакетов, которые определяют множество опций конфигурации, вы можете передать второй необазятельный аргумент команде config:dump-reference, чтобы отображать только раздел всей конфигурации:

1
2
3
4
5
6
$ bin/console config:dump-reference AsseticBundle use_controller

# Default configuration for "AsseticBundle" at path "use_controller"
use_controller:
    enabled:              '%kernel.debug%'
    profiler:             false

Другие настройки

На данном этапе, проверьте файд README вашего новенького пакета, чтобы узнать, что делать дальше. Повеселитесь!

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.