Нашел что-то более менее подходящее. Так называемая луковая или гексагональная архитектура. Они очень похожи, я пока не выбрал. Но принцип обоих вполне подходит для "правильного" использования AR в ООП.
Все новое, хорошо забытое старое. Я мельком рассматривал их, когда сочинял систему мидлваров для фреймворка. И сейчас, видимо интуитивно, я сделал примерно тоже самое. Те же кольца, так же запрос идет снаружи внутрь и обратно.
В двух словах (см. картинку). Внутренность розового цвета, это и есть та самая, преславутая доменная модель. Её можно вполне безболезненно строить по всем правилам DDD, нужно только абстрагироваться от механизмов, и рассуждать исключительно с точки зрения объектов. Нет там ничего, кроме объектов. Ни классов, ни функций, ни базы данных. Только сущности, VO и DTO. Ну может совсем чуток сервисов, хотя лучше без них. Там нужно рассматривать только взаимодействия и общение.
И совершенно не важно, откуда и как берутся эти объекты. Если исползуется AR и РСУБД, ничего страшного в этом нет. Больше скажу (тут я вынужден
не согласиться с многоуважаемым Сантехником), ничего страшного нет даже в использовании элементов DAO, если делать это в разумных пределах. Важен результат - в итоге должны появляться объекты, и общаться между собой должны на уровне объектов.
На моем примере. Да, использовался SQL запрос, но в итоге не появились какие то отдельные данные, а родилась связь объектов, по сути агрегат (от слова агрегация). Данные из этого агрегата получит по цепочке приложение, а потом уже фреймворк для использования во вьюшках или для каких то иных целей.
Если сравнивать с реальным миром, объекты в доменной модели (внутреннем слое), это актеры театра. Им раздали сценарий (DDD), по которому они знают, что когда и с кем делать.
Второй слой - зеленый, это приложение. Это сцена с реквизитом и суфлерской будкой. Вот тут уже строится логика поведений согласно сценарию.
Ну а всякие гримерки, раздевалка для зрителей, партер и буфет - это третий слой - фреймворк или инфраструктура. Он обеспечивает комфорт для зрителей и актеров.
Как я понял принцип этой архитектуры (нужно конечно еще долго разбираться в тонкостях), это независимость, но и тесное сотрудничество слоев. Труппа может поехать на гастроли (доменная модель не должна быть жестко привязана к
сцене приложению), а уж тем более к
театру фреймворку. На сцене может играть и другая труппа. В театре можно поставить разные спектакли, а то и съезд какой-нибудь Единой России провести.
Резюмируя самое главное. Не важно, каким образом генерируются и сохраняются объекты. Важно, что бы логика строилась на их взаимодействиях, а не на линейной обработке полученных от них данных. Тогда не особо важно, AR используется, DataMapper или черт в табакерке.
Вопросов конечно много осталось, но направление кажется я все же выбрал.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.