Skip to content

Commit

Permalink
Add a recipe for DoctrineBundle 2.13
Browse files Browse the repository at this point in the history
This recipe avoids getting deprecations from the ORM by turning on new
settings.
For the identity generation precedence, using `identity` is the best
choice for new projects (especially when using DBAL 4.x from the start).
  • Loading branch information
stof committed Oct 10, 2024
1 parent 74769e1 commit 810002c
Show file tree
Hide file tree
Showing 5 changed files with 112 additions and 0 deletions.
54 changes: 54 additions & 0 deletions doctrine/doctrine-bundle/2.13/config/packages/doctrine.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'

# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
#server_version: '16'

profiling_collect_backtrace: '%kernel.debug%'
use_savepoints: true
orm:
auto_generate_proxy_classes: true
enable_lazy_ghost_objects: true
report_fields_where_declared: true
validate_xml_mapping: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
identity_generation_preferences:
Doctrine\DBAL\Platforms\PostgreSQLPlatform: identity
auto_mapping: true
mappings:
App:
type: attribute
is_bundle: false
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
controller_resolver:
auto_mapping: false

when@test:
doctrine:
dbal:
# "TEST_TOKEN" is typically set by ParaTest
dbname_suffix: '_test%env(default::TEST_TOKEN)%'

when@prod:
doctrine:
orm:
auto_generate_proxy_classes: false
proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
query_cache_driver:
type: pool
pool: doctrine.system_cache_pool
result_cache_driver:
type: pool
pool: doctrine.result_cache_pool

framework:
cache:
pools:
doctrine.result_cache_pool:
adapter: cache.app
doctrine.system_cache_pool:
adapter: cache.system
54 changes: 54 additions & 0 deletions doctrine/doctrine-bundle/2.13/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"bundles": {
"Doctrine\\Bundle\\DoctrineBundle\\DoctrineBundle": ["all"]
},
"copy-from-recipe": {
"config/": "%CONFIG_DIR%/",
"src/": "%SRC_DIR%/"
},
"env": {
"#1": "Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url",
"#2": "IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml",
"#3": "",
"#4": "DATABASE_URL=\"sqlite:///%kernel.project_dir%/var/data.db\"",
"#5": "DATABASE_URL=\"mysql://app:[email protected]:3306/app?serverVersion=8.0.32&charset=utf8mb4\"",
"#6": "DATABASE_URL=\"mysql://app:[email protected]:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4\"",
"DATABASE_URL": "postgresql://app:[email protected]:5432/app?serverVersion=16&charset=utf8"
},
"dockerfile": [
"RUN install-php-extensions pdo_pgsql"
],
"docker-compose": {
"docker-compose.yml": {
"services": [
"database:",
" image: postgres:${POSTGRES_VERSION:-16}-alpine",
" environment:",
" POSTGRES_DB: ${POSTGRES_DB:-app}",
" # You should definitely change the password in production",
" POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!}",
" POSTGRES_USER: ${POSTGRES_USER:-app}",
" healthcheck:",
" test: [\"CMD\", \"pg_isready\", \"-d\", \"${POSTGRES_DB:-app}\", \"-U\", \"${POSTGRES_USER:-app}\"]",
" timeout: 5s",
" retries: 5",
" start_period: 60s",
" volumes:",
" - database_data:/var/lib/postgresql/data: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/db/data:/var/lib/postgresql/data:rw"
],
"volumes": ["database_data:"]
},
"docker-compose.override.yml": {
"services": [
"database:",
" ports:",
" - \"5432\""
]
}
},
"conflict": {
"symfony/framework-bundle": "<7.1"
}
}
4 changes: 4 additions & 0 deletions doctrine/doctrine-bundle/2.13/post-install.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* Modify your DATABASE_URL config in <fg=green>.env</>

* Configure the <fg=green>driver</> (postgresql) and
<fg=green>server_version</> (16) in <fg=green>config/packages/doctrine.yaml</>
Empty file.
Empty file.

0 comments on commit 810002c

Please sign in to comment.