Спасибо - этот комментарий к кузнице был от меня. Btw. Это так же, как мой пример из моего первоначального вопроса выше, если это «хорошая практика» или если это можно сделать лучше.

менное условие

Расширение ext: список новостей находится на странице www.domain.com/news [ID 9], а подробное описание - на сайте www.domain.com/article [ID 39].

Следуя официальному примеру (docs.typo3.org)

Я попробовалПример "Extbase Plugin Enhancer" описания функции, но это вызвало некоторые проблемы:

Ссылка на страницу 2 на странице 2 имеет cHash: news / list / 2? CHash = 123456789Ссылка для просмотра страниц со страницы 2 на страницу 1 содержит множество параметров get: news? Tx_news_pi1% 5Baction% 5D = list & tx_news_pi1% 5Bcontroller% 5D = News & cHash = 123456789. Без routeEnhancer это были бы просто «новости» без каких-либо параметров get.Ссылка на подробный вид имеет cHash: article / blog / 9? CHash = 52e8a4b7c6318cfe0273e7eab374e9aeURL имеют нежелательные сегменты («список» + «блог»)URL-адрес статьи не содержит заголовок новости

Одной из причин некоторых из этих проблем может быть то, что paginator не указывает контроллер в своих ссылках: news? Tx_news_pi1 [@ widget_0] [currentPage] = 2 & cHash = 123456789

Мой подход, который уже исправляет упомянутые проблемы

Я разделил это на два отдельных routeEnhancers (Extbase + Plugin), удалил сегменты, «defaultController», «defaults», «require» и добавил «аспекты»:

routeEnhancers:
  NewsDetail:
    type: Extbase
    limitToPages: [39]
    extension: News
    plugin: Pi1
    routes:
      - { routePath: '/{news_title}', _controller: 'News::detail', _arguments: {'news_title': 'news'} }
    aspects:
      news_title:
        type: PersistedAliasMapper
        tableName: 'tx_news_domain_model_news'
        routeFieldName: 'path_segment'
  NewsList:
    type: Plugin
    limitToPages: [9]
    routePath: '/{@widget_0/currentPage}'
    namespace: 'tx_news_pi1'
    aspects:
      '@widget_0/currentPage':
        type: StaticRangeMapper
        start: '1'
        end: '1000'

Мои опасения по поводу этого подхода:

Я не уверен, будет ли иметь преимущество (производительность или безопасность), чтобы добавить некоторые «значения по умолчанию» и «требования», и если это действительно хорошая практика, разделить это на два отдельных routeEnhancers.Это ограничивает количество страниц представления списка максимум 1000 (я признаю, что это много). Более высокое значение приведет к ошибке:Ассортимент превышает 1000 наименований.Если в заголовке новости есть косая черта (например, «Ежемесячный отчет 2018/07»), автоматически сгенерированный сегмент path_ будет также содержать косую черту («month-report-2018/07»), что приведет к следующей ошибке в представлении списка. :Параметр "tx_news_pi1__news" для маршрута "tx_news_pi1_0" должен совпадать с "[^ /] ++" (указан "ежемесячный отчет-2018/07"), чтобы создать соответствующий URL.

Ответы на вопрос(3)

Ваш ответ на вопрос