У нас есть концепция ORM, которую мы думаем реализовать над доктриной.В нашей концепции ORM у нас есть понятие, которое называется «Аспекты» (ничего общего с AOP);«Аспекты» связаны с объектами, и Аспект содержит свойства и отношения, которые в контексте отложенной загрузки должны загружаться в пакете (то есть в одном запросе).Например, User
может иметь listing
контекст, который выбирает {name,picture}
, и он может иметь activity
контекст, который выбирает {lastLogin,lastPost:listing}
(listing
здесь является аспектом публикации).
Идея заключалась бы в том, что, используя Аспекты, можно было бы использовать преимущества отложенной загрузки, в то же время избегая ловушки производительности, связанной с одним запросом на поле.Всякий раз, когда средство доступа получит доступ к объекту или списку объектов, он назначит этому доступу один или несколько Аспектов, так что свойства и отношения, которые в конечном итоге будут использоваться позже, будут загружены в один пакет.
Мы не являемсяХотя я хорошо знаком с Doctrine, поэтому мой вопрос: есть ли что-то подобное в Doctrine или это можно безболезненно подключить к ленивому механизму загрузки Doctrine?