Sto creando un'applicazione in PHP, usando Zend Framework 1 e Doctrine2 come livello ORM. Tutto sta andando bene. Ora, mi è capitato di notare che sia ZF1 che Doctrine2 sono dotati e fanno affidamento sulla propria implementazione della memorizzazione nella cache. Ho valutato entrambi, e mentre ognuno ha i suoi pro e contro, nessuno dei due si distingue come l'altro per i miei semplici bisogni. Entrambe le librerie sembrano anche essere scritte contro le loro rispettive interfacce, non le loro implementazioni.
I motivi per cui ritengo che questo sia un problema è che durante il bootstrap della mia applicazione, devo configurare due driver di memorizzazione nella cache, ognuno con la propria sintassi. Una mancata corrispondenza viene facilmente creata in questo modo e, a causa di ciò, risulta inefficace impostare due connessioni al backend della cache.
Sto cercando di determinare quale sia la strada migliore da seguire e sarei lieto di ricevere qualsiasi informazione che potresti essere in grado di offrire.
Quello che ho pensato finora sono quattro opzioni:
- Non fare nulla, accetta che siano presenti due classi che offrono funzionalità di memorizzazione nella cache.
- Crea una classe Facade per incollare l'interfaccia di Zend sull'implementazione della cache di Doctrine.
- Opzione 2, viceversa: crea una facciata per mappare l'interfaccia di Doctrine su un backend di Zend Framework.
- Usa l'ereditarietà multi-interfaccia per creare un'interfaccia per governarli tutti e prega che non ci siano sovrapposizioni (es .: se entrambi hanno un metodo "salva", dovranno accettare i parametri nello stesso ordine a causa dei PHP mancanza di un adeguato polimorfismo).
Quale opzione è la migliore o esiste una variante "Nessuna delle precedenti" di cui non sono a conoscenza?