Unfinalize

stevebauman/unfinalize image

Unfinalize stats

Downloads
237
Stars
103
Open Issues
1
Forks
3

View on GitHub →

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.

stevebauman photo

I like to build things on the web 💻

Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.


Stevebauman Unfinalize Related Articles

Remove "final" keywords from classes and methods in vendor packages with Unfinalize image

Remove "final" keywords from classes and methods in vendor packages with Unfinalize

Read article
Typesense Search logo

Typesense Search

Typesense is an open source, blazing-fast search engine, optimized for helping you build delightful search experiences for your sites and apps. Natively integrated with Laravel Scout.

Typesense Search
Acquaint Softtech logo

Acquaint Softtech

Acquaint Softtech offers AI-ready Laravel developers who onboard in 48 hours at $3000/Month with no lengthy sales process and a 100 percent money-back guarantee.

Acquaint Softtech
Curotec logo

Curotec

World class Laravel experts with GenAI dev skills. LATAM-based, embedded engineers that ship fast, communicate clearly, and elevate your product. No bloat, no BS.

Curotec
Blastup logo

Blastup

Blastup provides social media enhancement services including buying Instagram likes, followers, and views, with features like instant delivery and a variety of packages to suit different needs.

Blastup
Celebian logo

Celebian

Celebian is a social media marketing agency specializing in helping their clients go viral on TikTok. Whether you're looking to reach a bigger audience or gain more Tiktok followers, likes, and views, they've got you covered.

Celebian
LoadForge logo

LoadForge

Scalable load testing for web apps & APIs. Simulate real-world traffic and identify breaking points and performance limits with powerful, scalable load tests designed for Laravel.

LoadForge