Permanently remove final keywords from vendor packages.
stevebauman/unfinalize stats
- Downloads
- 237
- Stars
- 103
- Open Issues
- 1
- Forks
- 3
Stevebauman Unfinalize Readme
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.