Bulat
implementato un'estensione Doctrine mentre eravamo in OpenSky per la gestione dei riferimenti tra documenti MongoDB e record MySQL, che è attualmente nel loro (certamente obsoleto) fork
delle DoctrineExtensions
progetto. Ti consigliamo di guardare il orm2odm_references
o openskyfork
rami. Affinché questo sia utilizzabile nel tuo progetto, probabilmente vorrai portarlo su un nuovo fork di DoctrineExtensions o semplicemente incorporare il codice nella tua applicazione. Sfortunatamente, non c'è documentazione a parte il codice stesso.
Per fortuna, c'è anche articolo del ricettario sul sito Web di Doctrine che descrive come implementarlo da zero. Fondamentalmente, fai affidamento su un listener di eventi per sostituire la tua proprietà con un riferimento (cioè un oggetto proxy non inizializzato) dall'altro gestore di oggetti e il comportamento naturale degli oggetti proxy di caricarsi pigramente si prende cura del resto. A condizione che il listener di eventi sia un servizio, puoi facilmente iniettare in esso sia i gestori di oggetti ORM che ODM.
L'unica integrità garantita da questo modello è che riceverai eccezioni quando tenti di idratare un riferimento errato, che è probabilmente più di quanto otterresti semplicemente memorizzando un ID dell'altro database ed eseguendo query manualmente.