• Время чтения ~1 мин
  • 10.10.2023

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 updateUnfinalize 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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297