关于 typo3-conformance
typo3-conformance 是用于评估 TYPO3 扩展的审查技能,面向检查质量、发布准备度或现代化改造的开发者。它覆盖代码、架构、测试、后台实践和版本适配,并给出符合度评分。
主要功能
- 01检查扩展元数据与结构
- 02检查 PHP 和架构规范
- 03检查后台与测试实践
- 04审查 TER 和开发流程
- 05提供评分并标记关键问题
- 06检查 TYPO3 v14 适配度
适用场景
- 01评估扩展是否适合发布到 TER
- 02在现代化改造中检查规范符合度
- 03验证修复并记录评分变化
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dirnbauer/ webconsulting-skills --skill typo3-conformance安装后在 Claude Code 中输入/typo3-conformance确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
checkpoints.yamlassets/.github/workflows/publish-to-ter.ymlassets/Build/composer-unused/composer-unused.phpassets/Build/eslint/.eslintrc.jsonassets/Build/php-cs-fixer/php-cs-fixer.phpassets/Build/phpstan/phpstan-baseline.neonphpstan.neonassets/Build/rector/rector.phpassets/Build/stylelint/.stylelintrc.jsonassets/Build/typoscript-lint/TypoScriptLint.ymlreferences/backend-module-v13.mdbest-practices.mdcoding-guidelines.mdcomposer-validation.mdcrowdin-integration.mddevelopment-environment.mddirectory-structure.mddual-version-compatibility.mdexcellence-indicators.mdext-emconf-validation.mdext-files-validation.mdextension-architecture.mdhooks-and-events.mdlocalization-coverage.mdmulti-version-dependency-compatibility.mdphp-architecture.mdreport-template.mdruntests-validation.mdter-publishing.mdtesting-standards.md详细介绍
TYPO3 扩展一致性检查器
根据 TYPO3 编码标准、架构模式和最佳实践评估 TYPO3 扩展。
适用场景
- 扩展质量 / 是否达到 TER 发布标准
- 带评分的一致性报告
- 升级到 v12/v13/v14(v14.3 LTS 是默认/黄金标准)
委派
测试 -> typo3-testing | 文档 -> typo3-docs | OpenSSF -> enterprise-readiness
**范围:**仅限扩展。站点/项目仓库(type: project + Compose)——使用黄金检查器 typo3-14-gold/tools/conformance 评分。
工作流
步骤 0:上下文
阅读 ext_emconf.php 和 composer.json,了解版本、类型和范围。
步骤 1-11:检查项
- 元数据 -- 键、TYPO3 版本、类型
- 结构 -- composer.json、ext_emconf.php、Classes/、Configuration/、Resources/
- 编码 -- strict_types、PSR-12、PHP 8.4 显式 nullable、PHP 8.5 浮点数转整数
- 禁止项 -- 不使用
$GLOBALS,不使用GeneralUtility::makeInstance()创建服务 - 架构 -- 构造函数 DI、Services.yaml、PSR-14 事件(try/catch)、PSR-3 日志记录(LoggerAware+NullLogger)、工厂回退方案
- 后端 -- ES6、Modal API、CSRF、CSP(v13+)
- 测试 -- PHPUnit、Playwright E2E、覆盖率 >70%
- 实践 -- DDEV、runTests.sh、CI/CD
- TER -- 发布工作流、上传评论
- 审计 -- PHPStan 基线、TCA searchFields、XLIFF、缓存 has()+get()、查询属性、多版本适配器
- v14 就绪情况 -- 不使用
ext_tables.php/HashService/魔术查找器;Fluid VHs 严格;XLF 使用 2 个空格缩进。参见references/v14-deprecations.md。
步骤 12:验证
修复后重新运行。记录分数变化。
快速 grep 示例
grep -rL 'strict_types' Classes/ --include='*.php'
grep -rn '\$GLOBALS' Classes/ --include='*.php'
grep -rn 'GeneralUtility::makeInstance' Classes/ --include='*.php'
grep -rPn '\(\s*[A-Za-z\\]+\s+\$\w+\s*=\s*null' Classes/ --include='*.php' | grep -v '?' # PHP 8.4 implicit nullable
grep -rn '->has(' Classes/ --include='*.php' # cache has()+get() anti-pattern
grep -l 'strict_types' ext_emconf.php # ext_emconf must NOT have strict_types
grep -rn '(int)\s*\$' Classes/ --include='*.php' # PHP 8.5 implicit float-to-int
grep -rn 'data-toggle\|data-dismiss\|data-ride' Resources/ --include='*.html' # Bootstrap 4 in Fluid
grep -rn 'HashService\|GeneralUtility::hmac(\|->findBy[A-Z]\|->findOneBy[A-Z]\|->countBy[A-Z]' Classes/ --include='*.php' # v14 removals
[ -f ext_tables.php ] && echo "WARN: ext_tables.php deprecated (#109438)" # v14.3 deprecation
评分
**基础分(0-100):**架构(20)+ 指南(20)+ PHP(20)+ 测试(20)+ 实践(20)。卓越奖励最高 22 分。无论评分如何,关键问题都会导致阻止通过。
| 范围 | 等级 | 操作 |
|---|---|---|
| 90+ | 优秀 | 可用于生产/TER |
| 80-89 | 良好 | 修复少量问题 |
| 70-79 | 可接受 | 发布前修复 |
| 50-69 | 需要改进 | 需要投入大量精力 |
| <50 | 严重 | 阻止部署 |
参考资料
参见 references/:
- 架构与代码:
extension-architecture.md、directory-structure.md、php-architecture.md、coding-guidelines.md、best-practices.md、hooks-and-events.md - 验证:
composer-validation.md、ext-emconf-validation.md、ext-files-validation.md、runtests-validation.md、version-requirements.md、testing-standards.md - 多版本:
dual-version-compatibility.md、v13-v14-dual-compatibility.md、multi-version-dependency-compatibility.md、v13-deprecations.md、v14-deprecations.md - 实践与后端:
development-environment.md、backend-module-v13.md、ter-publishing.md、report-template.md、excellence-indicators.md、localization-coverage.md、crowdin-integration.md
assets/Build/ 中的资源模板:PHPStan、PHP-CS-Fixer、Rector、ESLint、Stylelint、TypoScript lint。
致谢与署名
本技能基于 Netresearch DTT GmbH 的出色工作。
原始仓库:https://github.com/netresearch/typo3-conformance-skill
Copyright (c) Netresearch DTT GmbH — 方法论和最佳实践(MIT / CC-BY-SA-4.0)
特别感谢 Netresearch DTT GmbH,感谢他们为 TYPO3 社区慷慨贡献开源成果,助力塑造了本技能集。 由 webconsulting.at 为本技能集改编