English spoken conference

Doctrine Caching for Jackalope Doctrine DBAL

1.3 version
Maintained Unmaintained

Doctrine Caching for Jackalope Doctrine DBALΒΆ

Jackalope Doctrine DBAL gets better performance when running it with the DoctrineCacheBundle:

1
$ composer require doctrine/doctrine-cache-bundle:1.0.*

And adding the following entry to your app/AppKernel.php:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
// app/AppKernel.php

// ...
public function registerBundles()
{
    $bundles = array(
        // ...
        new Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle(),
    );

    // ...
}

Configure a doctrine_cache section in your main configuration file and add a caches section to doctrine_phpcr.session.backend:

  • YAML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    # app/config/config.yml
    doctrine_cache:
        providers:
            phpcr_meta:
                type: file_system
            phpcr_nodes:
                type: file_system
    
    doctrine_phpcr:
        session:
            backend:
                # ...
                caches:
                    meta: doctrine_cache.providers.phpcr_meta
                    nodes: doctrine_cache.providers.phpcr_nodes
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <!-- app/config/config.xml -->
    <?xml version="1.0" encoding="UTF-8" ?>
    <container xmlns="http://symfony.com/schema/dic/services">
        <config xmlns="http://doctrine-project.org/schema">
            <provider name="phpcr_meta" type="file_system"/>
            <provider name="phpcr_nodes" type="file_system"/>
        </config>
        <config xmlns="http://doctrine-project.org/schema/symfony-dic/odm/phpcr">
            <session>
                <backend>
                    <!-- ... -->
                    <caches
                        meta="doctrine_cache.providers.phpcr_meta"
                        nodes="doctrine_cache.providers.phpcr_nodes"
                    >
                </backend>
            </session>
        </config>
    </container>
    
  • PHP
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    // app/config/config.php
    $container->loadFromExtension('doctrine_cache', array(
        'providers' => array(
            'phpcr_meta' => array(
                'type' => 'file_system',
            ),
            'phpcr_nodes' => array(
                'type' => 'file_system',
            ),
        ),
    );
    
    $container->loadFromExtension('doctrine_phpcr', array(
        'session' => array(
            'backend' => array(
                // ...
                'caches' => array(
                    'meta' => 'doctrine_cache.providers.phpcr_meta',
                    'nodes' => 'doctrine_cache.providers.phpcr_nodes',
                ),
            ),
        ),
    );
    

This work, including the code samples, is licensed under a Creative Commons BY-SA 3.0 license.