tomashvotruba / type-coverage
测量您项目的类型覆盖率
0.3.1
2024-06-14 15:11 UTC
Requires
- php: ^7.2 || ^8.0
- nette/utils: ^3.2 || ^4.0
- phpstan/phpstan: ^1.9.3
- dev-main
- 0.3.1
- 0.3.0
- 0.2.8
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.2
- 0.2.1
- 0.2.0
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0.72
- 0.1.0
- 0.0.12
- 0.0.11.72
- 0.0.11
- 0.0.10.72
- 0.0.10
- 0.0.9.72
- 0.0.9
- 0.0.8.72
- 0.0.8
- 0.0.7.72
- 0.0.7
- 0.0.6
- 0.0.5.72
- 0.0.5
- 0.0.4.72
- 0.0.4
- 0.0.3.72
- 0.0.3
- 0.0.2.72
- 0.0.2
- 0.0.1.72
- 0.0.1
- dev-release-0.0.1
- dev-tv-downgrades
This package is auto-updated.
Last update: 2024-09-20 19:09:38 UTC
README
PHPStan使用类型声明来确定变量、属性和其他表达式的类型。有时候,在数千个错误中很难判断哪些是重要的。
我们不必一次性修复所有PHPStan错误,可以从最小的必需类型覆盖率开始。
什么是类型覆盖率?这里有4种可能的类型声明。
final class ConferenceFactory { const SPEAKER_TAG = 'speaker'; private $talkFactory; public function createConference(array $data) { $talks = $this->talkFactory->create($data); return new Conference($talks); } }
注意:类常量类型需要PHP 8.3才能运行。
参数类型已定义,但属性、返回值和常量类型缺失。
- 4个中的1个 = 25%覆盖率
我们的代码质量仅达到其潜力的四分之一。让我们达到100%!
final class ConferenceFactory { - public const SPEAKER_TAG = 'speaker'; + public const string SPEAKER_TAG = 'speaker'; - private $talkFactory; + private TalkFactory $talkFactory; - public function createConference(array $data) + public function createConference(array $data): Conference { $talks = $this->talkFactory->create($data); return new Conference($talks); } }
这种技术在开始于旧项目时也非常简单。同时,您现在确切地知道项目的覆盖率有多高。
安装
composer require tomasvotruba/type-coverage --dev
此包在标记版本中可在PHP 7.2+版本上使用。
使用方法
使用PHPStan扩展安装器,一切准备就绪。
独立启用每个项目
# phpstan.neon parameters: type_coverage: return: 50 param: 35.5 property: 70 constant: 85
测量严格声明覆盖率
一旦达到100%类型覆盖率,请确保代码是严格的并使用类型
<?php declare(strict_types=1);
再次,按自己的进度逐步提高百分比
parameters: type_coverage: declare: 40
编码愉快!