Unfinalize Стива Баумана только что выпустил v1, и эти примечания к выпуску стоят минуты вашего времени.
Unfinalize - это пакет, который использует PHP CS Fixer для окончательного удаления final
ключевых слов из пакетов
composer vendor.Пожалуйста, обратите внимание: вам нужно будет создать форк этого пакета, если вы хотите использовать его, так как команда PHP CS Fixer пометила исходный пакет как конфликтующий. Вы можете обойти это, создав ответвление этого пакета с новым именем.
- final class Foo
+ class Foo
{
- final public function bar()
+ public function bar()
{
// ...
}
}
Когда вы запускаете его, он делает следующее:
- Обновление PHP-файлов выполняется безопасно, быстро и производительно.
- Изменения сохраняются постоянно. Отмена завершения не влияет на производительность.
- Никаких дополнительных зависимостей к приложению. Unfinalize и его зависимости компилируются в один phar-файл.
Отменить завершение использования
Сначала установите его:Затем внутри вашего файла добавьте пакеты поставщика, из которых composer.json
вы хотите удалить конечные ключевые слова:Затем добавьте команду unfinalize в вашcomposer.json
, чтобы она выполнялась наcomposer update
:
composer require stevebauman/unfinalize
{
"unfinalize": [
"vendor/package"
]
}
{
"scripts": {
"post-update-cmd": [
"@php vendor/bin/unfinalize run"
]
}
}
Наконец, запустите .
composer update
Unfinalize Options
--mark-final
Если вы хотите, чтобы конечные классы и методы были помечены блоком @final
doc, вы можете добавить опцию --mark-final
в команду unfinalize:Которая будет производить:До:После:
{
"scripts": {
"post-update-cmd": [
"@php vendor/bin/unfinalize run --mark-final"
]
}
}
final class Foo
{
final public function bar()
{
// ...
}
}
/**
* @final
*/
class Foo
{
/**
* @final
*/
public function bar()
{
// ...
}
}
--dry
Выполнить пробный запуск, чтобы увидеть, какие файлы будут изменены PHP CS Fixer.