调试 TYPO3 站点配置
Debug TYPO3 site configuration
我必须将复杂的 RealURL 配置更新为 V9 中的新站点配置。我收到 404 错误和不需要的重定向,所以我需要一些东西来调试路由。
通过核心文件调试时我发现TYPO3使用了Symfony Routing,而Symfony已经有一个调试接口:https://symfony.com/doc/current/routing/debug.html
是否也可以使用它来调试 TYPO3 路由?如果是的话,你能告诉我怎么做吗?
如果没有,一些关于主路由的提示 classes/functions 会很有帮助,所以我可以自己写一些 PHP 调试输出。我的问题是 routeEnhancers 和方面。
你能指出这里的问题是什么吗?
- 调用 "regular" 页面时重定向?
- Route Enhancer 有问题?解析 URL?
时
由于 Symfony Routing 默认使用带有修饰符的静态路由 ("I have a list of 100 URL endpoints"),并且 TYPO3 具有动态路由(由数据库填充),因此 Symfony Routing 中的简单调试工具在这里不起作用。
在解析方面,"PageResolver" PSR-15 中间件和 "PageRouter" 是调试时的良好开端。
我最近遇到了类似的问题。由于我 config.yaml
中的“方面”拼写错误,我的方面没有应用。
我最终使用调试器并在适当的方面放置了一个断点 class (StaticValueMapper
) 然后(因为没有命中断点)另一个在 ApectsFactory::createAspects()
功能。在那里,我注意到我的方面从未被创建。最终导致发现打字错误。
我没有按照 Benni 的建议查看 PageRouter
,下次可能会尝试。
对于大多数情况,只需调试就足够了,不需要编写额外的调试代码。我在主站点的副本上工作(这是因为没有在生产中启用任何调试支持)并且能够进行更改而不会出现丑陋的结果。
对于非开发人员或由于其他原因无法使用调试器或在开发站点上工作的人员 - 这可能会更困难。在这种情况下,能够跟踪 URL 会很好,例如查看来源和目标。
此外,能够验证 config.yaml
(基于模式,而不是简单的语法检查)会很酷。但是,扩展程序可以扩展设置,因此这很可能不是一项简单的任务。
我在包含的外部文件中进行了配置。
在这种情况下甚至省略了解析错误!
要测试其是否有效,您可以将其复制并粘贴到主 config.yaml。
我必须将复杂的 RealURL 配置更新为 V9 中的新站点配置。我收到 404 错误和不需要的重定向,所以我需要一些东西来调试路由。
通过核心文件调试时我发现TYPO3使用了Symfony Routing,而Symfony已经有一个调试接口:https://symfony.com/doc/current/routing/debug.html 是否也可以使用它来调试 TYPO3 路由?如果是的话,你能告诉我怎么做吗?
如果没有,一些关于主路由的提示 classes/functions 会很有帮助,所以我可以自己写一些 PHP 调试输出。我的问题是 routeEnhancers 和方面。
你能指出这里的问题是什么吗?
- 调用 "regular" 页面时重定向?
- Route Enhancer 有问题?解析 URL? 时
由于 Symfony Routing 默认使用带有修饰符的静态路由 ("I have a list of 100 URL endpoints"),并且 TYPO3 具有动态路由(由数据库填充),因此 Symfony Routing 中的简单调试工具在这里不起作用。
在解析方面,"PageResolver" PSR-15 中间件和 "PageRouter" 是调试时的良好开端。
我最近遇到了类似的问题。由于我 config.yaml
中的“方面”拼写错误,我的方面没有应用。
我最终使用调试器并在适当的方面放置了一个断点 class (StaticValueMapper
) 然后(因为没有命中断点)另一个在 ApectsFactory::createAspects()
功能。在那里,我注意到我的方面从未被创建。最终导致发现打字错误。
我没有按照 Benni 的建议查看 PageRouter
,下次可能会尝试。
对于大多数情况,只需调试就足够了,不需要编写额外的调试代码。我在主站点的副本上工作(这是因为没有在生产中启用任何调试支持)并且能够进行更改而不会出现丑陋的结果。
对于非开发人员或由于其他原因无法使用调试器或在开发站点上工作的人员 - 这可能会更困难。在这种情况下,能够跟踪 URL 会很好,例如查看来源和目标。
此外,能够验证 config.yaml
(基于模式,而不是简单的语法检查)会很酷。但是,扩展程序可以扩展设置,因此这很可能不是一项简单的任务。
我在包含的外部文件中进行了配置。
在这种情况下甚至省略了解析错误!
要测试其是否有效,您可以将其复制并粘贴到主 config.yaml。