Unfinalize
Unfinalize stats
- Downloads
- 237
- Stars
- 103
- Open Issues
- 1
- Forks
- 3
Permanently remove final keywords from vendor packages.
Unfinalize
Unleash the freedom lost with open source PHP packages marking classes and methods as final.
Unfinalize uses PHP CS Fixer to permanently remove final keywords from composer vendor packages:
- final class Foo+ class Foo{- final public function bar()+ public function bar() { // ... }}
- Updates to PHP files are done safely, quickly, and performant.
- Changes are stored permanently. There is no performance impact using Unfinalize.
- No additional dependencies to your application. Unfinalize and its dependencies are compiled into a single phar file.
Installation
composer require stevebauman/unfinalize
Usage
Inside your composer.json file, add the vendor packages you want to remove the final keywords from inside:
{ "unfinalize": [ "vendor/package" ]}
Add the unfinalize command to your composer.json so it runs on composer update:
{ "scripts": { "post-update-cmd": [ "@php vendor/bin/unfinalize run" ] }}
Then, run composer update.
Options
--mark-final
If you would like final classes and methods to be marked with a @final doc block, you may add the --mark-final option to the unfinalize command:
{ "scripts": { "post-update-cmd": [ "@php vendor/bin/unfinalize run --mark-final" ] }}
Which will produce:
Before:
final class Foo{ final public function bar() { // ... }}
After:
/** * @final */class Foo{ /** * @final */ public function bar() { // ... }}
--dry
Execute a dry run to see what files will be modified by PHP CS Fixer.