kleinweb/php-coding-standards

Klein学院媒体与传播学院的PHP编码标准

安装次数: 1,980

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 0

开放问题: 3

语言:Just

类型:phpcodesniffer-standard

0.5.2 2024-06-26 16:19 UTC

README

足够严格以满足理想主义者,足够宽松以满足现实主义者。

目标和非目标

  • 明确分离工具领域,以防止冲突
  • 在可行的情况下,优先考虑PHP框架互操作性小组(PHP-FIG)标准
  • 鼓励WordPress特定的最佳实践,同时防止过度反应的规范
  • 不支持不支持的PHP版本(显然,对吧?!)
  • 防止误操作→最小化闹钟

风格:PHP-CS-Fixer(《.php-cs-fixer.dist.php》)

通常遵循Symfony的列表。Symfony标准目前基于PER-2.0。

目前通过复制粘贴逐个项目处理。

代码检查:PHP_CodeSniffer(《.phpcs.xml.dist》)

主要基于WordPress-VIP-Go规则集。虽然我们没有使用WordPress VIP托管,但此标准鼓励最佳实践,同时允许在风格上具有灵活性。这是通过应用从WordPress核心编码标准中精心挑选的规则集,以及一系列自定义嗅探器来实现的。不幸的是(但可以理解),许多信息都引用了WordPress VIP作为平台,因为该标准假定代码将针对该托管平台。

我们还包含了许多从SlevomatCodingStandard精心挑选的添加,以及一些从PSR12NeutronRuleset中改编的规则[链接]。

在先前版本中,我们扩展了Doctrine编码标准,但它过于主观,导致了php-cs-fixerphpcbf之间无休止的来回争论。尽管我们努力对抗这种行为,但应用类似目标的修复通常会有细微的差别。

类型安全:PHPStan(《.phpstan.neon.dist》)

每个项目至少必须通过级别0的检查。在将PHPStan引入项目之初,从级别0开始,然后逐步增加。据我们所知,在WordPress环境中,级别8是可达到的最高级别。级别9基本上禁止使用混合类型。

杂项

我们还包含了一个biome.json文件,用于项目内部使用。这里的biome.json可以作为其他项目的良好起点,但当前此包仅针对PHP覆盖。

《just》(《//.justfile》,《//.config/just》),《pre-commit》(《//nix/git-hooks.nix》),以及《treefmt》(《//nix/treefmt.nix》)配置也是不错的起点,但该项目并不旨在提供这些工具的通用模板。

该项目不提交《composer.lock》,以防止下游依赖问题。