Jobeet, день 1: Начало проекта
Прежде всего, нам нужна дружественное рабочее окружение для веб-разработки. Мы будем использовать Docker с образами nginx и PHP из Docker Hub. Чтобы проверить минимальные требования для работы Symfony 4.1, вы можете обратиться к этой странице.
Конфигурация Docker
После установки Docker и Docker Compose создайте новый каталог с именем jobeet, скопируйте архив и распакуйте его в этом каталоге.
Это первоначальная конфигурация для стандартного PHP-проекта, которая была сгенерирована сервисом phpdocker.io.
Она включает в себя PHP 7.2, MySQL 5.7 и nginx. Для запуска контейнеров просто выполните следующую команду:
docker-compose up -d
Что мы только что сделали:
- вызвали
docker-compose, который обёртывает функциональность Docker и облегчает работу с ним - эта команда считывает конфигурацию из
docker-compose.ymlиз каталога, в котором выполняется команда upозначает запуск и выполнение всего нашего приложения-dозначает отдельный режим. Команда будет запускать контейнеры в фоновом режиме, и консоль будет доступна для ввода следующих команд.
Через несколько минут будут запущены контейнеры, и вы можете проверить их следующей командой:
docker-compose ps
Результат должен быть таким же:
Name Command State Ports
-------------------------------------------------------------------------------
jobeet-mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
jobeet-php-fpm /bin/sh -c /usr/bin/php-fpm Up 9000/tcp
jobeet-webserver nginx -g daemon off; Up 0.0.0.0:80->80/tcp
Поздравляем! Теперь вы подготовили окружение для проекта Jobeet.
Загрузка и установка Symfony 4.1
Для создания нашего проекта на Symfony, мы будем использовать метод, описанный в официальной документации.
Прежде всего, выполните контейнер с PHP:
docker-compose exec php-fpm bash
- Команда
execиспользуется для выполнения команд в контейнере php-fpm— это имя контейнера (строка 27 в файлеdocker-compose.yml)bashвыполняет bash в контейнере
Теперь вы находитесь в контейнере PHP. Запустите php -v, чтобы проверить, что PHP работает и его версия 7.2.x.
После этого создайте проект Symfony в каталоге tmp (временном каталоге), скопируйте его в каталог проекта, выйдите из контейнера и измените разрешение файлов, чтобы иметь возможность редактировать их из вашей среды IDE:
composer create-project symfony/website-skeleton:4.1 /tmp/jobeet/
cp -aR /tmp/jobeet/. .
exit;
sudo chown -R $USER:$USER .
Мы устанавливаем проект в директорию tmp и копируем его в нужный каталог, потому что команда create-project требует, чтобы целевой каталог был пустой, но в каталоге проекта у нас уже есть файлы Docker.
Проверка установки Symfony
Теперь откройте свой браузер и введите URL http://127.0.0.1. Вы должны увидеть ошибку No route found for "GET /", но в данный момент это нормально, поскольку у нас ещё нет созданных маршрутов.
Консоль Symfony
Symfony 4 поставляется с компонентом консоли, который вы будете использовать для разных задач. Чтобы просмотреть список команд, которые этот компонент может выполнять, введите в командной строке:
bin/console list
Примечание. Не забудьте сначала войти в PHP-контейнер, если вы ещё не там:
docker-compose exec php-fpm bashи выполните эту команду из контейнера php
Окружения
У Symfony 4 есть разные окружения. Если вы взгляните на каталог проекта, то увидите файл .env с переменной APP_ENV=dev внутри.
Значение prod означает окружения для продакшена, а dev используется веб-разработчиками при работе над приложением в окружении разработки.
Окружение разработки окажется очень удобной, поскольку оно отобразит вам все ошибки и предупреждения, а панель инструментов веб-отладки (Web Debug Toolbar ) — лучший друг разработчика. Проверьте работу среду разработки, перейдя по URL-адресу http://127.0.0.1 в браузере (обратите внимание на нижнюю панель инструментов отладки).

Это все на сегодня. Код можно найти здесь: https://github.com/gregurco/jobeet/tree/day1. Увидимся на следующий день этого урока, где мы поговорим о том, что именно будет на сайте Jobeet!
Дополнительная информация
Следующие шаги
Продолжение учебника: Jobeet, день 2: Проект
Главная страница: Учебник Jobeet с Symfony 4.1