Использование Symfony и Postgres c Homestead

Использование Symfony и Postgres c Homestead

Кратко рассмотрим, как установить Symfony 4 под Homestead и как подключить PostgreSQL к данному фреймворку (как поставить Homestead описано здесь). 

Установка Symfony

Откроем Homestead.yaml и добавим маппинг для нового проекта (предположим он будет называться sym4):

sites:
    ...
    - map: sym4.xx
      to: /home/vagrant/projects/sym4/public
      type: symfony4

 

Обратите внимание: добавляем тип проекта и указываем значение symfony4. В этом же файле в разделе databases добавим одноименную базу данных:

databases:
    ...
    - sym4

 

Отредактируем файл хостов, для чего выполняем команду:

sudo nano /etc/hosts

 

И добавим строку:

192.168.10.10   sym4.xx

 

Поясню: мы используем тот ip, который указан в файле Homestead.yaml. Далее запустим Homestead и войдём в виртуальную машину с помощью соответствующих команд:

vagrant up
...
vagrant ssh 

 

Перейдём в директорию projects и создадим проект на Symfony:

composer create-project symfony/website-skeleton sym4

 

После чего выйдем из виртуальной машины (Ctrl + D) и выполним:

vagrant provision

 

Вводим в адресную строку браузера http://sym4.xx и мы должны увидеть приветственную страницу Symfony. Если не работает - перезапустите vagrant.

Подключение PostgreSQL

Открываем файл .env, который находится в корне проекта и находим строку с настройками базы:

DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name

 

Заменим настройки на следующие:

DATABASE_URL=pgsql://homestead:secret@127.0.0.1:5432/sym4

 

Также обратите внимание на предыдущую закомментированную строку:

# Configure your db driver and server_version in config/packages/doctrine.yaml

 

Что ж, открываем указанный файл и частично меняем конфигруцию:

    dbal:
        # configure these for your database server
        driver: 'pdo_pgsql'
        server_version: '10.5'
        charset: utf8
        default_table_options:
            charset: utf8
            collate: utf8_unicode_ci

 

Пояснение: в моём случае используется postgres версии 10.5, проверить версию можно внутри виртуальной машины командой:

psql -V

 

После чего выполняем:

vagrant provision

 

Вот, собственно,  и всё. Успехов!