sbuerk / t3e-legacy-param-guard
TYPO3 保卫前端 PSR-7 请求中的旧参数处理
dev-main / 1.x-dev
2023-12-05 12:51 UTC
Requires
- php: ^7.4 || ^8.0 || ^8.1 || ^8.2 || ^8.3
- typo3/cms-core: ^11.5 || ^12.4 || ~11.5@dev || ~12.4@dev
- typo3/cms-frontend: ^11.5 || ^12.4 || ~11.5@dev || ~12.4@dev
Requires (Dev)
- bnf/phpstan-psr-container: ^1.0.1
- codeception/codeception: ^4.1.22 || ^5.0.10
- codeception/lib-asserts: ^1.13.2 || ^2.1.0
- codeception/module-asserts: ^1.3.1 || ^3.0.0
- codeception/module-cli: ^1.1 || ^2.0.1
- codeception/module-filesystem: ^1.0.3 || ^3.0.0
- codeception/module-webdriver: ^1.4.0 || ^4.0.0
- ergebnis/composer-normalize: ^2.28.3
- friendsofphp/php-cs-fixer: ^3.14.1
- friendsoftypo3/phpstan-typo3: ^0.9.0
- phpstan/phpstan: ^1.10.14
- phpstan/phpstan-phpunit: ^1.3.11
- phpunit/phpunit: ^9.6.7 || ^10.1
- typo3/cms-adminpanel: ~11.5@dev || ~12.4@dev
- typo3/cms-backend: ~11.5@dev || ~12.4@dev
- typo3/cms-belog: ~11.5@dev || ~12.4@dev
- typo3/cms-beuser: ~11.5@dev || ~12.4@dev
- typo3/cms-composer-installers: ^3 || 4.0.x@dev || ^5
- typo3/cms-core: ~11.5@dev || ~12.4@dev
- typo3/cms-dashboard: ~11.5@dev || ~12.4@dev
- typo3/cms-extbase: ~11.5@dev || ~12.4@dev
- typo3/cms-extensionmanager: ~11.5@dev || ~12.4@dev
- typo3/cms-felogin: ~11.5@dev || ~12.4@dev
- typo3/cms-filelist: ~11.5@dev || ~12.4@dev
- typo3/cms-fluid: ~11.5@dev || ~12.4@dev
- typo3/cms-fluid-styled-content: ~11.5@dev || ~12.4@dev
- typo3/cms-form: ~11.5@dev || ~12.4@dev
- typo3/cms-frontend: ~11.5@dev || ~12.4@dev
- typo3/cms-indexed-search: ~11.5@dev || ~12.4@dev
- typo3/cms-info: ~11.5@dev || ~12.4@dev
- typo3/cms-install: ~11.5@dev || ~12.4@dev
- typo3/cms-lowlevel: ~11.5@dev || ~12.4@dev
- typo3/cms-recycler: ~11.5@dev || ~12.4@dev
- typo3/cms-reports: ~11.5@dev || ~12.4@dev
- typo3/cms-scheduler: ~11.5@dev || ~12.4@dev
- typo3/cms-seo: ~11.5@dev || ~12.4@dev
- typo3/cms-setup: ~11.5@dev || ~12.4@dev
- typo3/cms-sys-note: ~11.5@dev || ~12.4@dev
- typo3/cms-tstemplate: ~11.5@dev || ~12.4@dev
- typo3/cms-workspaces: ~11.5@dev || ~12.4@dev
- typo3/testing-framework: ~7.0@dev
This package is auto-updated.
Last update: 2024-09-05 14:28:30 UTC
README
TYPO3 扩展 legacy_param_guard
使命
TYPO3 在前端使用了几个查询参数来决定显示哪些页面。自从 TYPO3 v9 开始,直接将可说话的 URL 集成到 TYPO3 CMS 中,保留了旧的 旧参数。
技术上,旧参数
- id=<int>: 页面 ID
- L=<int>: 语言 ID
- type=<int>: 类型数 (pageType)
对于页面解析和渲染来说已经不再真正需要。故意使用这些参数是旧时代的做法,不采用新技术,这要求核心仍然维护和尊重这些参数。
TYPO3 提供了一些方法,使得在项目和扩展中使用它们变得多余。然而,第三方服务和页面能够创建没有包含可说话 URL 的链接,这些链接被爬虫(如 googlebot)爬取。
此扩展提供了几种保护这些旧参数的方法
- 重定向到相同 URL,移除旧参数
- 阻止请求(简单的无内容 404 页面响应)
- 从请求中移除旧参数,即使浏览器有包含参数的 URL,也让 TYPO3 处理
注意!
使用此扩展会移除积极使用任何旧参数的能力。如果您的实例或扩展需要,请不要使用它。
兼容性
TYPO3 Build/Scripts/runTests.sh
此扩展包含了一个知名的 Build/Scripts/runTests.sh 基于 docker/docker-compose 的脚本包装脚本。
提供的命令/测试套件
- -s acceptance: 执行验收测试(尚未实现)
- -s clean: 清理不必要的文件和文件夹
- -s cgl: 确保代码风格指南规则
- -s composerUpdate: 运行 composer update
- -s composerValidate: 验证 composer.json
- -s functional: 执行功能测试
- -s lint: 对 *.php 文件进行语法错误检查
- -s phpstan: 执行静态代码分析 PHPStan
- -s phpstanGenerateBaseline: 为 PHPStan 生成基线。可用于管理暂时无法解决的报告。