Когда я использую основной PageRepository (TYPO3 \ CMS \ Frontend \ Page \ PageRepository), функцию getPage (), я получаю возвращаемый массив и не объект, как во многих других основных репозиториях. Затем мне нужно создать для себя какое-то «волшебство», чтобы вставить Категории или Автор страницы как Объекты для использования в шаблонах текучей среды. Вопрос в том, является ли отказ от модели страницы своего рода «дизайнерским решением»?
Почему в TYPO3 нет модели страницы в Core?
Ответы (3)
PageRepository не используется в контексте Extbase, поэтому здесь нет моделирования домена, потому что он также много используется в контексте backend и при выполнении ядра очень низкого уровня, где Extbase недоступен, иначе загрузка была бы слишком накладной. Extbase. Вы можете просто сопоставить таблицу страниц с вашей моделью и использовать правильное моделирование домена таким образом при использовании Extbase в своем расширении. Ядро не предоставляет модель домена Extbase для страниц, afaik.
Поставлять модель домена Extbase Page
не имело бы большого смысла по разным причинам:
- Самому TYPO3 это не нужно.
- Модель должна быть чрезвычайно общей, поскольку она ничего не может знать о ваших требованиях к предметной области.
- Из-за этого модель будет слишком общей практически для любых требований домена, что, в свою очередь, потребует от вас добавления своей собственной
Page
модели домена.
И да, то же самое можно сказать о поставляемых FrontendUser
и связанных с ними классах, и можно утверждать, что от них следует отказаться по тем же причинам.
Вам не нужно будет создавать объект из массива для использования в Fluid.
Вы также можете просто передать массив представлению. Вы бы использовали обозначение .
так же, как и с объектом.
Например. в контроллере:
$this->view->assign('page', $page);
Жидкость:
{page.title}