mcpField
T
typo3-conformance

typo3-conformance

github.com/dirnbauer测试与质量3335 次安装13 周前更新
代码仓库

关于 typo3-conformance

typo3-conformance 是用于评估 TYPO3 扩展的审查技能,面向检查质量、发布准备度或现代化改造的开发者。它覆盖代码、架构、测试、后台实践和版本适配,并给出符合度评分。

主要功能

  1. 01检查扩展元数据与结构
  2. 02检查 PHP 和架构规范
  3. 03检查后台与测试实践
  4. 04审查 TER 和开发流程
  5. 05提供评分并标记关键问题
  6. 06检查 TYPO3 v14 适配度

适用场景

  1. 01评估扩展是否适合发布到 TER
  2. 02在现代化改造中检查规范符合度
  3. 03验证修复并记录评分变化

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dirnbauer/webconsulting-skills --skill typo3-conformance

安装后在 Claude Code 中输入/typo3-conformance确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

checkpoints.yaml
assets/.github/workflows/
publish-to-ter.yml
assets/Build/composer-unused/
composer-unused.php
assets/Build/eslint/
.eslintrc.json
assets/Build/php-cs-fixer/
php-cs-fixer.php
assets/Build/phpstan/
phpstan-baseline.neon
phpstan.neon
assets/Build/rector/
rector.php
assets/Build/stylelint/
.stylelintrc.json
assets/Build/typoscript-lint/
TypoScriptLint.yml
references/
backend-module-v13.md
best-practices.md
coding-guidelines.md
composer-validation.md
crowdin-integration.md
development-environment.md
directory-structure.md
dual-version-compatibility.md
excellence-indicators.md
ext-emconf-validation.md
ext-files-validation.md
extension-architecture.md
hooks-and-events.md
localization-coverage.md
multi-version-dependency-compatibility.md
php-architecture.md
report-template.md
runtests-validation.md
ter-publishing.md
testing-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:检查项
  1. 元数据 -- 键、TYPO3 版本、类型
  2. 结构 -- composer.json、ext_emconf.php、Classes/、Configuration/、Resources/
  3. 编码 -- strict_types、PSR-12、PHP 8.4 显式 nullable、PHP 8.5 浮点数转整数
  4. 禁止项 -- 不使用 $GLOBALS,不使用 GeneralUtility::makeInstance() 创建服务
  5. 架构 -- 构造函数 DI、Services.yaml、PSR-14 事件(try/catch)、PSR-3 日志记录(LoggerAware+NullLogger)、工厂回退方案
  6. 后端 -- ES6、Modal API、CSRF、CSP(v13+)
  7. 测试 -- PHPUnit、Playwright E2E、覆盖率 >70%
  8. 实践 -- DDEV、runTests.sh、CI/CD
  9. TER -- 发布工作流、上传评论
  10. 审计 -- PHPStan 基线、TCA searchFields、XLIFF、缓存 has()+get()、查询属性、多版本适配器
  11. 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 为本技能集改编

评论

支持 Markdown