Почему у TYPO3 нет модели страницы в ядре? - PullRequest
1 голос
/ 16 января 2020

Когда я использую ядро ​​ PageRepository (TYPO3 \ CMS \ Frontend \ Page \ PageRepository), функцию getPage (), я получаю массив , возвращенный и не объект , как во многих других основных репозиториях. Затем мне нужно создать для себя «волхвов» c, чтобы ввести Категории или Автор страницы как Объекты для использования в шаблонах Fluid . Вопрос в том, является ли это своего рода «дизайнерским решением» вообще не предоставлять модель страницы?

Ответы [ 3 ]

0 голосов
/ 16 января 2020

Не имеет особого смысла отправлять модель домена Extbase Page по разным причинам:

  1. Самому TYPO3 она не понадобится.
  2. Для модели потребуется быть чрезвычайно обобщенным c, поскольку он не может ничего знать о требованиях вашего домена.
  3. В связи с этим модель будет слишком обобщенной c для практически любого требования домена, которое, в свою очередь, будет требует, чтобы вы в любом случае добавили собственную модель домена Page.

И да, то же самое можно сказать и о доставленных FrontendUser и связанных классах, и можно утверждать, что их следует отбросить для По тем же причинам.

0 голосов
/ 16 января 2020

Вам не нужно создавать объект из массива для использования в Fluid.

Вы также можете просто передать массив в представление. Вы могли бы использовать . -обозначение, как с объектом.

Например, в контроллере:

$this->view->assign('page', $page);

Жидкость:

{page.title}
0 голосов
/ 16 января 2020

PageRepository не используется в контексте Extbase, поэтому здесь отсутствует моделирование домена, поскольку он также часто используется в контексте бэкэнда и при выполнении ядра на очень низком уровне, где Extbase недоступен или это может привести к большим накладным расходам. загрузить Extbase. Вы можете просто сопоставить таблицу страниц с собственной моделью и использовать правильное моделирование доменов таким образом, когда используете Extbase в своем расширении. Ядро не обеспечивает модель домена Extbase для страниц, afaik.

...