pixelant / pxa-lpeh
通过在无需发起外部HTTP请求的情况下加载本地页面内容,加快错误页面处理速度,并释放PHP工作进程。
v1.1.1
2022-12-05 07:42 UTC
Requires
- typo3/cms-core: ^9.5 || ^10.1 || ^11.5
This package is auto-updated.
Last update: 2024-09-05 11:53:13 UTC
README
此扩展通过在无需发起外部HTTP请求的情况下加载本地页面内容,加快错误页面处理速度并释放PHP工作进程。
速度提升取决于您的服务器外部HTTP请求的往返时间(包括DNS解析),但可能比现在快3倍。
安装
- 从TYPO3扩展存储库下载或使用Composer安装扩展:
composer req pixelant/pxa-lpeh
- 在管理工具 > 扩展模块中启用扩展或运行
vendor/bin/typo3 extension:activate pxa_lpeh
配置
默认配置
默认情况下无需配置。
扩展将使用任何“显示页面内容”错误处理器的配置。
- 当“显示页面内容”指向内部TYPO3页面时,请进行内部请求,例如“t3://page?uid=404”。
- 外部请求将正常进行并发出外部请求。例如,当“显示页面内容”指向“https://www.example.com”时。
禁用页面内容错误处理器覆盖
默认情况下,此扩展覆盖了PageContentErrorHandler
类,并且仅在错误处理器配置明确要求外部请求时调用此类。
您可以在管理工具 > 设置 > 扩展配置中通过勾选“不替换标准的‘显示页面内容’错误处理器,而是使用‘PHP类’”来禁用此覆盖。
您仍然可以通过在网站管理 > 网站 > [您的网站] > 错误处理中显式配置PHP错误处理器类来使用此扩展。
- 创建新的错误处理
- 将“HTTP错误状态码”设置为404
- 将“如何处理错误”设置为“PHP类”
- 将“错误处理器类目标(FQCN)”设置为
Pixelant\PxaLpeh\Error\PageErrorHandler\LocalPageErrorHandler
- 将“显示页面内容”设置为当前网站中的一个页面以生成链接,例如t3://page?uid=78
避免挂起的HTTP请求
在负载高的情况下,错误页面的外部请求可能会挂起您的网站。我们建议将$GLOBALS['TYPO3_CONF_VARS']['HTTP']['timeout']
设置为非零值以减轻此问题。
最终错误回退
如果获取页面失败,将显示一个带有http状态码的“通用”TYPO3错误页面。这可能是因为链接不是指向页面,该页面在此网站上不存在等。
问题和贡献
请随时提交问题或为此扩展贡献拉取请求。