Всем добрый день.
Хотелось бы рассказать немного о, думаю, многим уже известном, движке LiveStreet. Точнее, о том, как продвигается его развитие и о новых функциях в dev-репозитории.
Стоило мне убить день и разобраться, как появился материал. Спасибо за труды.
Тот пример со статьями плохо работает с текущей версией движка из репозиория? Пока не понял, как заставить его работать без ошибок, но ошибка уходит, если убрать связь с юзером (что понятно). Так понимаю, ещё способ — унаследовать ModuleUser_*User в движке от ORM версий абстрактных классов?
Я так понял, планируется перевод модулей-мапперов-сущностей на ORM? Ну поменяю я локально наследование не от Entity, а от EntityORM, потом обновлю и снова менять…
Попробовал поменять родителей для всех классов модуля User — нашёл багу.
Если первичный ключ содержит символ нижнего подчёркивания, получается такая конструкция User_ModulegetUserItemsByArrayUser_Id. Исправил в Engine формирование этой строки (вставил явно слово Module), стало получаться, на первый взгляд, правильно — ModuleUser_getUserItemsByArrayUser_Id.
Далее Engine::GetClassInfo() неправильно разбирает эту строчку и Engine::_CallModule пытается вызвать метод id модуля User.
Омг. На мой вкус, стандарт именования в LiveStreet несколько отличается от PEAR'овского. Так что эта дока хоть и хороша, в данном случае, не актуальна.
Так и не удалось получить желаемого поведения от этой модели. Есть родительская сущность А, в ней несколько дочерних Б. Всё. Вложенность закончилась. Получить список сущностей А с вложенными сущностями Б. Такое в данный момент получить в принципе возможно или здесь метод в модуле придётся писать ручками?
15 комментариев
Тот пример со статьями плохо работает с текущей версией движка из репозиория? Пока не понял, как заставить его работать без ошибок, но ошибка уходит, если убрать связь с юзером (что понятно). Так понимаю, ещё способ — унаследовать ModuleUser_*User в движке от ORM версий абстрактных классов?
но в приницпе да, насчет ModuleUser и EntityUser правильно!
Если первичный ключ содержит символ нижнего подчёркивания, получается такая конструкция User_ModulegetUserItemsByArrayUser_Id. Исправил в Engine формирование этой строки (вставил явно слово Module), стало получаться, на первый взгляд, правильно — ModuleUser_getUserItemsByArrayUser_Id.
Далее Engine::GetClassInfo() неправильно разбирает эту строчку и Engine::_CallModule пытается вызвать метод id модуля User.
Я не отрицаю, не должен. Но бага всё-таки есть. Не я же генерирую вызов этого метода. Вопрос открыт.
З.Ы. я как бы согласен если не вы генерируете название и бага присутствует =)
Код хочу получить примерно такой
Раскуривание исходников в полной мере не проясняет вопроса.
Спасибо.
Я здесь написал псевдокод. Если Get так мозолит глаза, можно его убрать в данном примере.
Проблема не в этом.
Или записать вот так:
$aСписокСущностейБ = $aСписокСущностейА[0]->GetСписокСущностейБ();
$aСписокСущностейБ[1]->getTitle();
Как настроить $aRelations чтобы получить такую структуру?
Почему ActiveRecord и почему свой велосипед если есть, скажем Doctrine 2