Skip to content

DoctrineBundle config parameter "doctrine.dbal.logging" didn't work with value passed via env #38915

Closed
@FallDi

Description

@FallDi

Symfony version(s) affected: 5.1.8

Description
DoctrineBundle doctrine.dbal.logging configuration parameter couldn't be set via env parameter.

How to reproduce
symfony + doctrinebundle

# config/services.yaml
parameters:
     log_sql_queries: '%env(bool:LOG_SQL_QUERIES)%'
# .env
LOG_SQL_QUERIES=0
# config/packages/doctrine.yaml
doctrine:
    dbal:
        url: '%env(resolve:DATABASE_URL)%'
        logging: '%log_sql_queries%'

Actual result: SQL queries are logged
Expected result: SQL queries are NOT logged

Possible root cause*
https://github.com/doctrine/DoctrineBundle/blob/6b1620354863f1f04fd4aa0a725e4ad1c728faac/DependencyInjection/DoctrineExtension.php#L139

if ($connection['logging']) {
    $logger = new Reference('doctrine.dbal.logger');
}

$connection['logging'] contains something like string(74) "env_53d7fe31b9ea8cf5_bool_LOG_SQL_QUERIES_d2a427ed60021c1b934ed0f420ebe859".
Maybe envVars should be resolved automatically earlier?

Additional context
Original issue reported to DoctrineBundle doctrine/DoctrineBundle#1244.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions