Отлаживать конфигурацию сайта TYPO3

#typo3 #typo3-9.x #symfony-routing

#typo3 #typo3-9.x #symfony-маршрутизация

Вопрос:

Я должен обновить сложную конфигурацию RealURL до новой конфигурации сайта в версии 9. Я получаю 404 ошибки и нежелательные перенаправления, поэтому мне нужно что-то для отладки маршрутизации.

Во время отладки с помощью основных файлов я понял, что TYPO3 использует маршрутизацию Symfony, а у Symfony уже есть интерфейс отладки: https://symfony.com/doc/current/routing/debug.html Возможно ли также использовать это для отладки маршрутов TYPO3? Если да, можете ли вы сказать мне, как это сделать?

Если нет, то некоторые подсказки об основных классах / функциях маршрутизации были бы полезны, так что я могу сам написать некоторые результаты отладки PHP. Мои проблемы связаны с маршрутизаторами и аспектами.

Ответ №1:

Можете ли вы указать, в чем именно здесь проблема?

  • Перенаправляет при вызове «обычных» страниц?
  • Проблемы с усилителями маршрута? При разрешении URL?

Поскольку маршрутизация Symfony по умолчанию работает со статическими маршрутами с модификаторами («У меня есть список из 100 конечных точек URL»), а у TYPO3 есть динамические маршруты (заполняемые базой данных), простой инструмент отладки от Symfony Routing здесь не работает.

Когда дело доходит до устранения неполадок, промежуточное программное обеспечение PSR-15 «PageResolver» и «PageRouter» являются хорошим началом при отладке.

Комментарии:

1. Проблема заключается в сложном REST Api в realurl, и я хочу шаг за шагом довести его до версии 9. Контроллер ExtBase, таблица поиска и так далее. Все, что я получаю, это 404 без какой-либо информации в настоящее время, и все это ново для меня, поэтому я действительно мог бы использовать некоторые выходные данные отладки.

2. Отладка функций PageResolver и PageRouter была правильным предложением, теперь работает

Ответ №2:

Недавно у меня была похожая проблема. Из-за неправильного написания «аспектов» в моем config.yaml , мой аспект не был применен.

В итоге я использовал отладчик и поместил точку останова в соответствующий класс aspect ( StaticValueMapper ), а затем (поскольку точка останова не была достигнута) еще одну в ApectsFactory::createAspects() функции. Там я заметил, что мой аспект так и не был создан. Что в конечном итоге привело к обнаружению опечатки.

Я не заглядывал PageRouter , как предложил Бенни, вероятно, попробую это в следующий раз.

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

Для не разработчиков или людей, у которых нет возможности использовать отладчик или работать на сайте разработки по другим причинам — это может быть сложнее. В этом случае было бы неплохо иметь возможность отслеживать URL-адреса, например, видеть источник и цель.

Кроме того, было бы здорово иметь возможность проверять config.yaml (на основе схемы, помимо простой проверки синтаксиса). Однако расширения могут расширять настройки, так что это, скорее всего, будет не такой уж тривиальной задачей.

Ответ №3:

У меня была моя конфигурация во включенном внешнем файле.

В этом случае даже ошибки синтаксического анализа исключены!!

Чтобы проверить, является ли она допустимой, вы можете скопировать и вставить ее в основной файл config.yaml.