NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #653 most downloaded on Packagist
Measure type coverage of your project
Last release 2 days ago
05 Oct 2026
Ships unpredictably
gaps range from 8 days to 11 months
Some releases are documented
notes for 15 of 57 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
57 releases · first in 2022
One column per quarter.
Nothing published for this version
Skip narrow return on protected method in non-final class
Skip narrow return on protected method in non-final class (#94)
NarrowPublicClassMethodParamTypeRule is gone - the narrow_param group now checks private methods only.
NarrowPublicClassMethodParamTypeRule is gone - the narrow_param group now checks private methods only.
NarrowPublicClassMethodParamTypeRulePublic method can be called from places outside the analysed code, so narrowing its param types based on known calls was risky and yielded false positives (#90).
parameters:
type_perfect:
# now runs only NarrowPrivateClassMethodParamTypeRule
narrow_param: trueIts 3 collectors and helper services went with it.
⚠️ Drop any ignoreErrors or direct registration of NarrowPublicClassMethodParamTypeRule from your phpstan.neon - the class no longer exists.
Count a trait member once per declaration, not once per using class - fixes return coverage counting a trait method N times when N classes use the tra
Skip narrow return when only generics or template type differ
Skip narrow return when only generics or template type differ (#87)
Skip class whose name contains "Closure" in narrow param rule
Skip class whose name contains "Closure" in narrow param rule (#86)
Skip Doctrine DBAL AbstractSchemaManager in narrow return type rule (…
Skip Doctrine DBAL AbstractSchemaManager in narrow return type rule (…
Skip DateTime / DateTimeImmutable in narrow return type rule
Skip DateTime / DateTimeImmutable in narrow return type rule (#81)
Skip Symfony Form / FormInterface in narrow return type rule
Skip Symfony Form / FormInterface in narrow return type rule (#79)
Skip Doctrine ArrayCollection in narrow return type rule
Skip Doctrine ArrayCollection in narrow return type rule (#77)
Type Perfect rules are now part of this package
rector/type-perfect has been merged into tomasvotruba/type-coverage (#68). Its rules live in packages/type-perfect and keep the Rector\TypePerfect\ namespace, so existing ignoreErrors patterns still match.
The extension is registered automatically via phpstan/extension-installer — no extra includes needed.
If you use both packages, drop rector/type-perfect from composer.json to avoid duplicate rules:
"require-dev": {
"tomasvotruba/type-coverage": "^2.3",
- "rector/type-perfect": "^2.1"
}Four rules used to report right after install, with no way off short of ignoreErrors. They now match the rest of the set — off by default, one parameter each (#69):
parameters:
type_perfect:
narrow_param: false
narrow_return: false
no_mixed: false
null_over_false: false
+ no_param_type_removal: false
+ no_isset_on_object: false
+ no_empty_on_object: falseEnable what you want:
parameters:
type_perfect:
narrow_param: true
narrow_return: true
no_mixed_property: true
no_mixed_caller: true
null_over_false: true
no_param_type_removal: true
no_isset_on_object: true
no_empty_on_object: trueWhat each of those 4 catches:
// no_isset_on_object / no_empty_on_object
if (isset($object->property)) { } // bad - hides typos and nulls
if ($object->property !== null) { } // good
// no_array_access_on_object
$object['key']; // bad
$object->getKey(); // good
// no_param_type_removal
public function run(string $name) // parent
public function run($name) // bad - child drops the typereturn_type, param_type, property_type and constant_type behave exactly as in 2.2.2 — upgrading adds rules, it does not change existing measurements.
symfony/dom-crawler bumped to ^8.1 (dev only) (#70)Full Changelog: 2.2.2...2.3.0
add cda
add cda (#67)
release PHP 7.4 downgraded
release PHP 7.4 downgraded
release PHP 7.4 downgraded
release PHP 7.4 downgraded
New features and Changes 🥳 PHP 8.5 support added Full Changelog : 2.0.2...2.1.0
release PHP 7.4 downgraded
release PHP 7.4 downgraded
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →