Symfony та Postgres з Homestead

Symfony та Postgres з 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

 

Ось, власне, і все. Успіхів!