Search code examples
phpdoctrine-ormzend-framework2

Zend Framework 2 How To Set Doctrine 2 Proxy Directory


So I am using Doctrine 2 module in Zend Framework 2 configured according to Jason Grimes' turorial (http://www.jasongrimes.org/2012/01/using-doctrine-2-in-zend-framework-2/).

Sometimes I keep getting this error though:

Your proxy directory must be writable.

How can I set the proxy directory?

Here is my Doctrine configuration from module.config.php:

'doctrine' => array(
    'driver' => array(
        __NAMESPACE__ . '_driver' => array(
            'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
            'cache' => 'array',
            'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
        ),
        'orm_default' => array(
            'drivers' => array(
                __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
            ),
        ),
    ),
),

Solution

  • The default proxy directory is data/DoctrineORMModule/Proxy. I guess you know how to make it writable, right?

    If you need to change it for some reason, you can overwrite the appropriate configuration key:

    <?php
    return array(
        'doctrine' => array(
            'configuration' => array(
                '<YOUR DRIVER NAME (orm_default by default)>' => array(
                    'proxy_dir' => 'data/DoctrineORMModule/Proxy',
                    'proxy_namespace' => 'DoctrineORMModule\Proxy',
                )    
            )
        )
    );
    ?>
    

    Hope this helps.