Estoy creando una aplicación en PHP, usando Zend Framework 1 y Doctrine2 como la capa ORM. Todo va bien Ahora, me di cuenta de que tanto ZF1 como Doctrine2 vienen con su propia implementación de almacenamiento en caché y dependen de ella. He evaluado ambos, y aunque cada uno tiene sus propios pros y contras, ninguno de ellos se destaca como superior al otro por mis simples necesidades. Ambas bibliotecas también parecen estar escritas en sus respectivas interfaces, no en sus implementaciones.
Las razones por las que siento que esto es un problema es que durante el arranque de mi aplicación, tengo que configurar dos controladores de almacenamiento en caché, cada uno con su propia sintaxis. Un desajuste se crea fácilmente de esta manera, y se siente ineficiente configurar dos conexiones al backend de almacenamiento en caché debido a esto.
Estoy tratando de determinar cuál es el mejor camino a seguir, y agradecería cualquier idea que pueda ofrecer.
Lo que he pensado hasta ahora son cuatro opciones:
- No haga nada, acepte que hay dos clases que ofrecen funcionalidad de almacenamiento en caché.
- Cree una clase de Fachada para pegar la interfaz de Zend en la implementación de almacenamiento en caché de Doctrine.
- Opción 2, al revés: cree una Fachada para mapear la interfaz de Doctrine en un backend de Zend Framework.
- Use la herencia de múltiples interfaces para crear una interfaz para gobernarlos a todos, y ore para que no haya superposiciones (es decir: si ambos tienen un método "guardar", deberán aceptar los parámetros en el mismo orden debido a PHP falta de polimorfismo adecuado).
¿Qué opción es mejor, o hay una variante de "Ninguna de las anteriores" que no conozco?