# Особенности разработки с использованием виртуальной машины

Файлы виртуальной машины отличаются от файлов в проекте PHPStorm, т.к. это как бы 2 разные машины: виртуальная машина воспринимается как сервер, а файлы проекта хранятся на локальном диске. Поэтому важно помнить о синхронизации файлов.

### Настройки Deployment (публикации изменений на сервере)

Среди прочих настроек нужно выделить следующие:

- автозагрузка файлов при сохранении файла в PHPStorm - удобная опция, чтобы не выполнять загрузку обновленного в редакторе PHPStorm файла на виртуальную машину:  
    
    [![image-1687889184806.png](https://howto.stankin.ru/uploads/images/gallery/2023-06/scaled-1680-/image-1687889184806.png)](https://howto.stankin.ru/uploads/images/gallery/2023-06/image-1687889184806.png)
- автозагрузка файлов при переходе между ветками Git - поскольку при переходе между ветками чаще всего требуется, чтобы состояние файлов на виртуальной машине актуализировалось, то данная опция также может оказаться очень полезной:  
    
    [![image-1687889564999.png](https://howto.stankin.ru/uploads/images/gallery/2023-06/scaled-1680-/image-1687889564999.png)](https://howto.stankin.ru/uploads/images/gallery/2023-06/image-1687889564999.png)

### Ручная синхронизация файлов между виртуальной машиной и проектом

Делается так: правой кнопкой нажать на проекте, выбрать Deployment - Synchronize и дальше выбрать, какие файлы куда скопировать.

При синхронизации можно выбрать направление копирования (задается стрелочками посредине, а также можно удалить файл, которого нет на другой строне, для этого нужно установить вместо стрелочки крестик).

<p class="callout warning">Тем не менее, опытным путем обнаружено, что не всегда PHPStorm при таком подходе определяет разницу. При работе в Symfony основные папки, которые необходимо синхронизировать, представлены ниже. В случае возникновения ошибок рекомендуется запустить синхронизацию не для проекта целиком, а для этих файлов / папок.  
- assets  
- config  
- src  
- templates  
- composer.json  
- composer.lock</p>

### Изменение часового пояса

В файле `/etc/php.ini` прописать параметр:

`date.timezone = Europe/Moscow`

и далее перечитать конфиг PHP:

`service httpd reload`.

Проверка:

[![image-1689871722168.png](https://howto.stankin.ru/uploads/images/gallery/2023-07/scaled-1680-/image-1689871722168.png)](https://howto.stankin.ru/uploads/images/gallery/2023-07/image-1689871722168.png)