Symfony: Сборка необходимых зависимостей и первый коммит

Вот и подошло время создать Back-end для будущего Angular приложения, нам необходимо установить Symfony в директорию back, там мы будем собирать Rest API.

Установка Symfony

Открываем консоль и выполняем следующую команду.

 composer create-project symfony/website-skeleton back

Убедитесь что у вас стоит последняя версия composer. Это важно, потому что Symfony flex (4), требует composer с поддержкой Symfony recipes.

После выполнения команды вы увидите следующее, не забудьте ввести проект под контроль GIT, для этого наводим мышку на директорию back и нажимаем правой кнопкой, далее Git -> Add.

Вы увидите что файлы “позеленели”:

Дополнительные пакеты

Давайте доставим необходимые нам в будущем пакеты, для этого воспользуемся Composer. Выполните следующую команду:

Важно: убедитесь что вы находитесь в директории back

composer require friendsofsymfony/jsrouting-bundle && composer require friendsofsymfony/rest-bundle && composer require jms/serializer-bundle && composer require knplabs/knp-paginator-bundle && composer require nelmio/api-doc-bundle && composer require nelmio/cors-bundle && composer require friendsofsymfony/user-bundle

Если композер спросит применять ли рецепты, то скажите “да” (y).

Эти пакеты включают в себя инструменты для: сериализации данных, генерации документации (описания) REST API, систему управления пользователями, пагинацию, и тд.

Если при установке возникнет следующая ошибка:

The child node “db_driver” at path “fos_user” must be configured.

То делаем следующее, перейдите в терминал:

Если вы не в директории back то перейдите в нее

cd back

Далее идем в конфигурацию и создаем конфиг для fos-user-bundle

cd config/packages && touch fos_user.yaml

Вставьте следующий код в файл

fos_user:
    db_driver: orm # other valid values are 'mongodb' and 'couchdb'
    firewall_name: main
    user_class: App\Entity\User
    from_email:
        address: "noreply@site.com"
        sender_name: "Site.com"
    registration:
        confirmation:
            enabled:    true
            template:   '@FOSUser/Registration/email.html.twig'

    resetting:
        email:
            template:   '@FOSUser/Resetting/email.html.twig'
    #firewall_name:          ~ # Required
    #user_class:             ~ # Required
    use_listener:           true
    use_flash_notifications: true
    use_authentication_listener: true
    use_username_form_type: true
    service:
        mailer:                 fos_user.mailer.twig_swift
        email_canonicalizer:    fos_user.util.canonicalizer.default
        username_canonicalizer: fos_user.util.canonicalizer.default
        token_generator:        fos_user.util.token_generator.default
        user_manager:           fos_user.user_manager.default

Полное описание конфигурационного файла здесь, можете ознакомиться подробнее. Я позже расскажу об этом, когда мы будем заниматься настройкой Security. Ну а сейчас вернемся в back и выполним очистку кеша симфони.

cd ../.. && bin/console cache:clear
Успешная очистка кеша

Мы подготовили проект, установили Symfony 4, а так же дополнительные пакеты, которые будут полезны в дальнейшем. Давайте добавим новые файлы под контроль VCS GIT, кликаем правой кнопкой на директории back и выбираем GIT – > Add.

После этого идём в VCS – > Commit, вы увидете следующее окно:

Коммит

В поле Commit Message пишем сообщение Initial Commit и нажимаем синюю кнопку commit.

Далее простым сочитанием клавиш вызываем окно для отправки данных в GIT (ctrl + shift + k) и нажимаем push.

Перейдём в репозиторий: https://gitlab.com/amashukov/symfony-rest

Мы видим, что исходный код успешно был в него отправлен. В следующей статье мы познакомимся с роутингом и создадим первый простой Rest контроллер.


Подпишитесь на рассылку новых статей

Подпишитесь на рассылку свежих статей и присоединяйтесь к 7 остальным подписчикам.