Чтобы разработать приложение на Symfony локально, нужно выполнить несколько шагов:
1. **Установить PHP**: Убедитесь, что вы установили подходящую версию PHP с необходимыми расширениями на вашем компьютере.
2. **Установить Composer**: Composer - это инструмент для управления зависимостями в PHP, который позволит вам установить Symfony и другие библиотеки.
3. **Создать новый проект Symfony**: Вы можете создать новый проект, выполнив следующую команду в терминале:
```bash
composer create-project symfony/website-skeleton my_project_name
```
4. **Запустить сервер разработки**: После создания проекта вы можете запустить встроенный сервер с помощью `symfony` CLI (которую предварительно необходимо установить) или использовать встроенный сервер PHP:
```bash
php -S localhost:8000 -t public
```
или если установлен `symfony` CLI:
```bash
symfony server:start
```
5. **Установка MongoDB ODM**:
Установите пакет `doctrine/mongodb-odm-bundle` с помощью Composer:
```bash
composer require doctrine/mongodb-odm-bundle
```
Чтобы избежать необходимости установки MongoDB и его PHP расширения на хостовой машине, лучше всего использовать Docker:
1. **Установить Docker**: Скачайте и установите Docker с официального сайта.
2. **Создать `Dockerfile` и `docker-compose.yml` файлы**:
В `Dockerfile` вы создаете образ с необходимой версией PHP и расширениями. А `docker-compose.yml` позволяет вам определить и запустить многоконтейнерное приложение Docker.
`Dockerfile` пример:
```Dockerfile
FROM php:7.4-fpm
RUN apt-get update && apt-get install -y libpng-dev
RUN docker-php-ext-install pdo pdo_mysql gd
COPY --from=composer /usr/bin/composer /usr/bin/composer
```
`docker-compose.yml` пример:
```yaml
version: '3.7'
services:
php:
build:
context: .
volumes:
- .:/app
working_dir: /app
mongodb:
image: mongo
ports:
- "27017:27017"
webserver:
image: nginx:alpine
ports:
- "8000:80"
volumes:
- ./public:/public
depends_on:
- php
- mongodb
```
3. **Интеграция MongoDB в ваше Symfony приложение**:
В файле `.env` вашего Symfony проекта укажите URL для подключения к контейнеру MongoDB:
```
# .env
###> doctrine/mongodb-odm-bundle ###
MONGODB_URL=mongodb://mongodb:27017/my_database
MONGODB_DB=my_database
###< doctrine/mongodb-odm-bundle ###
```
Обратите внимание на идентификатор `mongodb:27017`, где `mongodb` - это имя сервиса, определённое в `docker-compose.yml`.
4. **Запуск контейнеров**:
В терминале перейдите в каталог вашего проекта и введите:
```bash
docker-compose up -d
```
Это создаст и запустит все сервисы, включая MongoDB и PHP.
5. **Разработка вашего приложения**:
Откройте ваш проект и начните его разработку. Вы можете использовать Symfony CLI или любой другой инструмент для запуска Symfony сервера, который будет работать внутри Docker контейнера.
При использовании Docker вам не нужно устанавливать MongoDB и PHP расшир