Symfony News

New in DoctrineBundle 1.11.0

DoctrineBundle is the library that integrates the Doctrine DBAL and ORM libraries into Symfony applications. DoctrineBundle 1.11.0 has just been released and includes several new features and improvements. These are the most important ones.

Symfony Cache Pool Support

Using Symfony Cache pools for caching Doctrine's queries, metadata and results is now easier thanks to the new pool option. This allows using a Symfony Cache pool directly without having to create extra services:

  • YAML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    # config/packages/doctrine.yaml
    doctrine:
        orm:
            auto_generate_proxy_classes: false
            metadata_cache_driver:
                type: pool
                pool: doctrine.system_cache_pool
            query_cache_driver:
                type: pool
                pool: doctrine.system_cache_pool
            result_cache_driver:
                type: pool
                pool: doctrine.result_cache_pool
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <!-- config/packages/doctrine.xml -->
    <?xml version="1.0" encoding="UTF-8" ?>
    <container xmlns="https://symfony.com/schema/dic/services"
        xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
        xmlns:doctrine="https://symfony.com/schema/dic/doctrine"
        xsi:schemaLocation="https://symfony.com/schema/dic/services
            https://symfony.com/schema/dic/services/services-1.0.xsd
            https://symfony.com/schema/dic/doctrine
            https://symfony.com/schema/dic/doctrine/doctrine-1.0.xsd">
    
        <doctrine:config>
            <doctrine:orm>
                <doctrine:entity-manager>
                    <doctrine:query-cache-driver
                        type="pool"
                        pool="doctrine.system_cache_pool"
                    />
    
                    <doctrine:metadata-cache-driver
                        type="pool"
                        pool="doctrine.system_cache_pool"
                    />
    
                    <doctrine:result-cache-driver
                        type="pool"
                        pool="doctrine.result_cache_pool"
                    />
                </doctrine:entity-manager>
            </doctrine:orm>
        </doctrine:config>
    </container>
    

Using the new pool setting is optional, as is the dependency on symfony/cache. However, in the future, declaring caches through DoctrineCacheBundle will be deprecated, leaving only the id and pool cache types. Support for DoctrineCacheBundle will be dropped in DoctrineBundle 2.0.

Store Backtraces When Profiling Queries

The new profiling_collect_backtrace configuration option enables backtrace collection when logging a query. This helps you find the exact source of failing or problematic queries:

DoctrineBundle Query Backtrace

Because of the large amount of data this can produce, this option is disabled by default and you will need to enable it explicitly.

New Messenger Middleware Services

If you are using the Messenger component, there are new middleware services you can use to avoid connection issues to your database:

  • The doctrine_ping_connection middleware will attempt to ping the connection and will reconnect to the database if this ping wasn't successful. It will also reset the entity manager should it have been closed in the meantime.
  • The doctrine_close_connection middleware will close the connection after handling a message.

Be trained by Symfony experts - 2019-05-13 Cologne - 2019-05-13 Clichy - 2019-05-13 Clichy


About us

What a Symfony developer should know about the framework: News, Jobs, Tweets, Events, Videos,...

Resources

Find us on Twitter

Find us on Facebook