ubean / psalm-internal-extends
Psalm plugin that enforces @internal / @psalm-internal for traits (and similar) across namespaces.
v1.0.0
2025-09-01 07:50 UTC
Requires
- php: ^8.3
Requires (Dev)
- phpunit/phpunit: ^11.5
- vimeo/psalm: ^6.13
This package is not auto-updated.
Last update: 2025-09-02 07:30:18 UTC
README
Enforces internal visibility boundaries for trait usage in Psalm.
Configuration
Add the plugin to your psalm.xml
and set an optional policy
inside the <pluginClass>
configuration. Supported values:
- namespace (default): consumer namespace must equal, be a child of, or a parent of the internal namespace.
- package: only the top-level vendor segment must match (e.g.,
Vendor\...
).
Example psalm.xml snippet:
<plugins> <pluginClass class="Ubean\Psalm\Internal\TraitEnforcer\Plugin"> <policy>namespace</policy> </pluginClass> </plugins>
If not specified, the policy defaults to namespace
.
Issue name
This plugin emits the issue InternalTraitUse
when a class uses a trait outside the allowed internal boundary.
License
Released under the MIT License. See LICENSE
for details.