【问题标题】:Debug TYPO3 site configuration调试 TYPO3 站点配置
【发布时间】:2019-08-14 20:45:43
【问题描述】:

我必须将复杂的 RealURL 配置更新为 V9 中的新站点配置。我收到 404 错误和不需要的重定向,所以我需要一些东西来调试路由。

在通过core文件调试的时候发现TYPO3使用了Symfony Routing,而Symfony已经有了调试接口:https://symfony.com/doc/current/routing/debug.html 是否也可以使用它来调试 TYPO3 路由?如果是,你能告诉我怎么做吗?

如果没有,一些关于主要路由类/函数的提示会很有帮助,所以我可以自己编写一些 PHP 调试输出。我的问题是 routeEnhancers 和方面。

【问题讨论】:

    标签: typo3 typo3-9.x symfony-routing


    【解决方案1】:

    你能指出这里到底是什么问题吗?

    • 调用“常规”页面时重定向?
    • 路由增强器有问题吗?解析 URL 时?

    由于 Symfony Routing 默认使用带修饰符的静态路由(“我有 100 个 URL 端点的列表”),而 TYPO3 具有动态路由(由数据库填充),Symfony Routing 的简单调试工具在这里不起作用.

    在解析方面,“PageResolver”PSR-15中间件和“PageRouter”是调试时的良好开端。

    【讨论】:

    • Issue是realurl中复杂的REST Api,我想一步步把它带到V9。 ExtBase 控制器、查找表等。我得到的只是 404,目前没有任何信息,这对我来说是全新的,所以我真的可以使用一些调试输出。
    • 调试 PageResolver 和 PageRouter 函数是正确的建议,现在可以使用
    【解决方案2】:

    我最近遇到了类似的问题。由于我的config.yaml 中的“aspects”拼写错误,我的aspect 没有被应用。

    我最终使用了一个调试器并在适当的方面类 (StaticValueMapper) 中放置了一个断点,然后(因为断点未命中)ApectsFactory::createAspects() 函数中的另一个断点。在那里,我注意到我的方面从未被创造出来。这最终导致找到错字。

    我没有按照 Benni 的建议查看 PageRouter,下次可能会尝试。

    在大多数情况下,只需调试就足够了,无需编写额外的调试代码。我在主站点的副本上工作(这是因为没有在生产中启用任何调试支持)并且能够进行更改而不会产生丑陋的结果。

    对于非开发人员或因其他原因无法使用调试器或在开发站点上工作的人 - 这可能会更困难。在这种情况下,最好能够跟踪 URL,例如查看源和目标。

    此外,能够验证config.yaml(基于模式,超越简单的语法检查)会很酷。但是,扩展程序可以扩展设置,因此这很可能不是一项微不足道的任务。

    【讨论】:

      【解决方案3】:

      我的配置包含在一个包含的外部文件中。

      在这种情况下,甚至 Parsing-Errors 都被省略了!!

      要测试它是否有效,您可以将其复制并粘贴到主 config.yaml 中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-02
        • 2020-07-14
        • 2022-10-20
        • 1970-01-01
        • 2012-02-23
        • 1970-01-01
        相关资源
        最近更新 更多