Bulat
внедрихме разширение Doctrine, докато бяхме в OpenSky за обработка на препратки между документи на MongoDB и MySQL записи, което в момента се намира в техния (признано остарял) вилица
от DoctrineExtensions
проект. Ще искате да разгледате или orm2odm_references
или openskyfork
клонове. За да може това да може да се използва във вашия проект, вероятно ще искате да го пренесете към нов форк на DoctrineExtensions или просто да включите кода във вашето приложение. За съжаление няма документация, освен самия код.
За щастие има и статия от готварска книга на уебсайта на Doctrine, който описва как да приложите това от нулата. По принцип разчитате на слушател на събития да замени вашето свойство с препратка (т.е. неинициализиран прокси обект) от другия мениджър на обекти и естественото поведение на прокси обектите да се зареждат лениво се грижи за останалото. При условие че слушателят на събития е услуга, можете лесно да инжектирате в него както ORM, така и ODM мениджърите на обекти.
Единствената почтеност, гарантирана от този модел, е, че ще получавате изключения, когато се опитвате да хидратирате лоша препратка, което вероятно е повече, отколкото бихте получили, като просто съхраните идентификатор на другата база данни и направите заявка ръчно.