spaze / phpstan-stripe
Stripe SDK extension for PHPStan
Installs: 822 031
Dependents: 1
Suggesters: 0
Security: 0
Stars: 5
Watchers: 4
Forks: 6
Open Issues: 1
Type:phpstan-extension
Requires
- php: ^8.0
- phpstan/phpstan: ^1.7
Requires (Dev)
- nikic/php-parser: ^4.13
- php-parallel-lint/php-console-highlighter: ^1.0
- php-parallel-lint/php-parallel-lint: ^1.2
- spaze/coding-standard: ^1.1
- stripe/stripe-php: ^8.7|^9.9|^10.8
Suggests
- phpstan/extension-installer: Allows automatic requirement of extension.neon
README
Stripe SDK extension for PHPStan
Looking for a maintainer/EOL
UPDATE: I've found a new maintainer(s), see the discussion so this will probably change hands (and URL) soon. Thanks!
Adds particular types replacing Stripe\StripeObject
type declaration for many properties in many classes used by the PHP library for the Stripe API.
See extension.neon
for the full list of currently replaced properties.
Also adds types for properties used only when the object is updated.
These are not documented using @property
tags on the classes (or the types are wrong), and the dev team feels it should stay this way.
Honestly, I'm not sure adding @property
tags would be the best way either.
PHPStan will obviously flag such property access and this extension will resolve those errors by telling PHPStan such properties exist.
This extension is not using
parameters:
universalObjectCratesClasses:
- Stripe\StripeObject
in its configuration because in the SDK, everything extends StripeObject
(or everything extends ApiResource
which in turn extends StripeObject
) so each property your code would read or write would exist, at least for PHPStan.
And I wanted this extension to provide some more precise checks.
If you don't want to or can't use this extension, add the universalObjectCratesClasses
config snippet to your phpstan.neon
and be ready to go.
Installation
The package is hosted on Packagist so you can install it using Composer:
composer require --dev spaze/phpstan-stripe
If you use phpstan/extension-installer, you are all set!
For manual installation, add this to your phpstan.neon
:
includes:
- vendor/spaze/phpstan-stripe/extension.neon