php caching zend-framework doctrine2 zend-framework2

php - Habilitar la memoria caché de Doctrine 2 en un proyecto de ZF2



caching zend-framework (1)

Para reducir los dolores de cabeza innecesarios, utilice siempre la memoria caché de array en tiempo de desarrollo y memcached , redis o apc cuando la aplicación se ejecute en el entorno de producción.

Debe poner sus definiciones de fábrica bajo la clave service_manager > factories , no directamente en la matriz de configuración del módulo.

Prueba esto:

// module.config.php return array( ''doctrine'' => array( ''configuration'' => array( ''orm_default'' => array( ''metadata_cache'' => ''mycache'', ''query_cache'' => ''mycache'', ''result_cache'' => ''mycache'', ''hydration_cache'' => ''mycache'', ) ), ), ''service_manager'' => array( ''factories'' => array( ''doctrine.cache.mycache'' => function ($sm) { $cache = new /Doctrine/Common/Cache/MemcacheCache(); $memcache = new /Memcache(); $memcache->connect(''localhost'', 11211); $cache->setMemcache($memcache); return $cache; }, ), ), );

También recomiendo mover las fábricas a clases de fábrica individuales, siempre. De esta forma, tendrá una aplicación más legible, mantenible y eficiente en el entorno de producción con la ayuda de la memoria caché de configuración fusionada .

Por ejemplo:

''service_manager'' => array( ''factories'' => array( ''doctrine.cache.mycache'' => ''Your/Memcache/Factory'' // implement FactoryInterface ), ), );

¿Cómo habilitar la memoria caché en un proyecto que trabaje con Zend Framework 2 y Doctrine 2? y ¿qué caché exactamente debería estar habilitado el caché de doctrina o el caché Zend?

Aquí lo que he intentado pero no puedo ver ninguna diferencia en la ejecución del tiempo agregado en el

module / Application / config / module.config.php

''doctrine.cache.my_memcache'' => function ($sm) { $cache = new /Doctrine/Common/Cache/MemcacheCache(); $memcache = new /Memcache(); $memcache->connect(''localhost'', 11211); $cache->setMemcache($memcache); return $cache; }, ''doctrine.cache.apc'' => function ($sm){ $apc = new /Doctrine/Common/Cache/ApcCache(); return $apc; }, // Doctrine config ''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'' ), ) ), ''configuration'' => array( ''orm_defaults'' => array( ''metadata_cache'' => ''apc'', ''query_cache'' => ''apc'', ''result_cache'' => ''my_memcache'', ) ) ),

cualquier ayuda o idea o explicación es apreciada. Gracias.