cspray / phinal
Enforce final on your classes!
Installs: 127 759
Dependents: 6
Suggesters: 0
Security: 0
Stars: 13
Watchers: 2
Forks: 1
Open Issues: 0
Type:psalm-plugin
Requires
- php: ^8.0
- ext-simplexml: *
- vimeo/psalm: 5.*
Requires (Dev)
- behat/behat: ^3.11
- codeception/codeception: ^4.1
- phpunit/phpunit: ^9.5.5
- psalm/plugin-phpunit: ^0.18
- squizlabs/php_codesniffer: ^3.3
- weirdan/codeception-psalm-module: ^0.13.1
- weirdan/prophecy-shim: ^2.0
README
Do you like final? Really like it? Then enforce it on all your classes! When you have to fallback to inheritance you can do so by explicitly marking your class with an Attribute and explaining why it should be inherited.
Installation
Running Psalm 5
composer require --dev cspray/phinal
vendor/bin/psalm-plugin enable cspray/phinal
Running Psalm 4
composer require --dev cspray/phinal:1.0.0
vendor/bin/psalm-plugin enable cspray/phinal
Code Examples
Good! 👍
<?php declare(strict_types=1); use Cspray\Phinal\AllowInheritance; final class ProperlyMarkedFinal {} #[AllowInheritance('Explain why you would need to inherit this.')] class YouCanInheritThis {}
Bad! 👎
<?php declare(strict_types=1); class NotMarkedFinal {}
Why do you need to inherit this? You probably don't need to and should mark it final!