Make doctrine/mongodb-odm-bundle an official recipe (#1509)

* Import doctrine/mongodb-odm-bundle recipes from contrib

* Add alias 'mongodb-odm' for 'doctrine/mongodb-odm-bundle'

* No need to resolve MONGODB_URL env var
This commit is contained in:
Jérôme Tamarelle
2026-01-16 13:26:38 +01:00
committed by GitHub
parent df2763ad15
commit 2bf874b4e3
13 changed files with 269 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
doctrine_mongodb:
auto_generate_proxy_classes: true
auto_generate_hydrator_classes: true
connections:
default:
server: '%env(MONGODB_URI)%'
options: {}
default_database: '%env(MONGODB_DB)%'
document_managers:
default:
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Document'
prefix: 'App\Document'
alias: App

View File

@@ -0,0 +1,21 @@
doctrine_mongodb:
auto_generate_proxy_classes: false
auto_generate_hydrator_classes: false
document_managers:
default:
metadata_cache_driver:
type: service
id: doctrine_mongodb.system_cache_provider
services:
doctrine_mongodb.system_cache_provider:
class: Symfony\Component\Cache\DoctrineProvider
public: false
arguments:
- '@doctrine_mongodb.system_cache_pool'
framework:
cache:
pools:
doctrine_mongodb.system_cache_pool:
adapter: cache.system

View File

@@ -0,0 +1,14 @@
{
"bundles": {
"Doctrine\\Bundle\\MongoDBBundle\\DoctrineMongoDBBundle": ["all"]
},
"copy-from-recipe": {
"config/": "%CONFIG_DIR%/",
"src/": "%SRC_DIR%/"
},
"env": {
"MONGODB_URI": "mongodb://localhost:27017",
"MONGODB_DB": "symfony"
},
"aliases": ["mongodb-odm", "doctrine-mongodb", "mongo-odm", "doctrine-mongo"]
}

View File

@@ -0,0 +1,42 @@
doctrine_mongodb:
auto_generate_proxy_classes: true
auto_generate_hydrator_classes: true
connections:
default:
server: '%env(MONGODB_URI)%'
options: {}
default_database: '%env(MONGODB_DB)%'
document_managers:
default:
auto_mapping: true
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Document'
prefix: 'App\Document'
alias: App
when@prod:
doctrine_mongodb:
auto_generate_proxy_classes: false
auto_generate_hydrator_classes: false
document_managers:
default:
metadata_cache_driver:
type: service
id: doctrine_mongodb.system_cache_provider
services:
doctrine_mongodb.system_cache_provider:
factory: ['Doctrine\Common\Cache\Psr6\DoctrineProvider', 'wrap']
class: 'Doctrine\Common\Cache\Psr6\DoctrineProvider'
public: false
arguments:
- '@doctrine_mongodb.system_cache_pool'
framework:
cache:
pools:
doctrine_mongodb.system_cache_pool:
adapter: cache.system

View File

@@ -0,0 +1,18 @@
{
"bundles": {
"Doctrine\\Bundle\\MongoDBBundle\\DoctrineMongoDBBundle": ["all"]
},
"copy-from-recipe": {
"config/": "%CONFIG_DIR%/",
"src/": "%SRC_DIR%/"
},
"env": {
"MONGODB_URI": "mongodb://localhost:27017",
"MONGODB_DB": "symfony"
},
"conflict": {
"doctrine/cache": "<1.11",
"symfony/framework-bundle": "<5.3"
},
"aliases": ["mongodb-odm", "doctrine-mongodb", "mongo-odm", "doctrine-mongo"]
}

View File

@@ -0,0 +1,33 @@
doctrine_mongodb:
auto_generate_proxy_classes: true
auto_generate_hydrator_classes: true
connections:
default:
server: '%env(MONGODB_URI)%'
options: {}
default_database: '%env(MONGODB_DB)%'
document_managers:
default:
auto_mapping: true
mappings:
App:
is_bundle: false
dir: '%kernel.project_dir%/src/Document'
prefix: 'App\Document'
alias: App
when@prod:
doctrine_mongodb:
auto_generate_proxy_classes: false
auto_generate_hydrator_classes: false
document_managers:
default:
metadata_cache_driver:
type: service
id: doctrine_mongodb.system_cache_pool
framework:
cache:
pools:
doctrine_mongodb.system_cache_pool:
adapter: cache.system

View File

@@ -0,0 +1,46 @@
{
"bundles": {
"Doctrine\\Bundle\\MongoDBBundle\\DoctrineMongoDBBundle": ["all"]
},
"copy-from-recipe": {
"config/": "%CONFIG_DIR%/",
"src/": "%SRC_DIR%/"
},
"env": {
"#1": "Format described at https://www.mongodb.com/docs/php-library/current/connect/connection-options/",
"#2": "MONGODB_URI=\"mongodb://username:password@localhost:27017/?authSource=auth-db\"",
"#3": "MONGODB_URI=\"mongodb+srv://username:password@YOUR_CLUSTER_NAME.YOUR_HASH.mongodb.net/?retryWrites=true&w=majority\"",
"MONGODB_URI": "mongodb://localhost:27017",
"MONGODB_DB": "symfony"
},
"dockerfile": [
"RUN install-php-extensions mongodb"
],
"docker-compose": {
"compose.yaml": {
"services": [
"mongodb:",
" # In production, you may want to use a managed database service",
" image: mongodb/mongodb-community-server:latest",
" environment:",
" - MONGODB_INITDB_DATABASE=${MONGODB_DB:-app}",
" # You should definitely set a root username and password in production",
" - MONGODB_INITDB_ROOT_USERNAME=${MONGODB_USERNAME:-}",
" - MONGODB_INITDB_ROOT_PASSWORD=${MONGODB_PASSWORD:-}",
" volumes:",
" - mongodb_data:/data/db:rw",
" # You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!",
" # - ./docker/mongodb/data:/data/db:rw"
],
"volumes": ["mongodb_data:"]
},
"compose.override.yaml": {
"services": [
"mongodb:",
" ports:",
" - \"27017\""
]
}
},
"aliases": ["mongodb-odm", "doctrine-mongodb", "mongo-odm", "doctrine-mongo"]
}

View File

@@ -0,0 +1,31 @@
doctrine_mongodb:
auto_generate_proxy_classes: true
auto_generate_hydrator_classes: true
connections:
default:
server: '%env(MONGODB_URI)%'
options: {}
default_database: '%env(MONGODB_DB)%'
document_managers:
default:
auto_mapping: true
mappings:
App:
dir: '%kernel.project_dir%/src/Document'
prefix: 'App\Document'
when@prod:
doctrine_mongodb:
auto_generate_proxy_classes: false
auto_generate_hydrator_classes: false
document_managers:
default:
metadata_cache_driver:
type: service
id: doctrine_mongodb.system_cache_pool
framework:
cache:
pools:
doctrine_mongodb.system_cache_pool:
adapter: cache.system

View File

@@ -0,0 +1,46 @@
{
"bundles": {
"Doctrine\\Bundle\\MongoDBBundle\\DoctrineMongoDBBundle": ["all"]
},
"copy-from-recipe": {
"config/": "%CONFIG_DIR%/",
"src/": "%SRC_DIR%/"
},
"env": {
"#1": "Format described at https://www.mongodb.com/docs/php-library/current/connect/connection-options/",
"#2": "MONGODB_URI=\"mongodb://username:password@localhost:27017/?authSource=auth-db\"",
"#3": "MONGODB_URI=\"mongodb+srv://username:password@YOUR_CLUSTER_NAME.YOUR_HASH.mongodb.net/?retryWrites=true&w=majority\"",
"MONGODB_URI": "mongodb://localhost:27017",
"MONGODB_DB": "symfony"
},
"dockerfile": [
"RUN install-php-extensions mongodb"
],
"docker-compose": {
"compose.yaml": {
"services": [
"mongodb:",
" # In production, you may want to use a managed database service",
" image: mongodb/mongodb-atlas-local:latest",
" environment:",
" - MONGODB_INITDB_DATABASE=${MONGODB_DB:-app}",
" # You should definitely set a root username and password in production",
" - MONGODB_INITDB_ROOT_USERNAME=${MONGODB_USERNAME:-}",
" - MONGODB_INITDB_ROOT_PASSWORD=${MONGODB_PASSWORD:-}",
" volumes:",
" - mongodb_data:/data/db:rw",
" # You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!",
" # - ./docker/mongodb/data:/data/db:rw"
],
"volumes": ["mongodb_data:"]
},
"compose.override.yaml": {
"services": [
"mongodb:",
" ports:",
" - \"27017\""
]
}
},
"aliases": ["mongodb-odm", "doctrine-mongodb", "mongo-odm", "doctrine-mongo"]
}