• Час читання ~1 хв
  • 10.10.2023

Unfinalize by Steve Bauman щойно випустив v1, і ці нотатки варті хвилини вашого часу.

Unfinalize - це пакет, який використовує PHP CS Fixer для остаточного видалення final ключових слів з пакетів постачальника композиторів.

Будь ласка, зверніть увагу: вам потрібно буде створити форк цього пакету, якщо ви хочете його використовувати, оскільки команда PHP CS Fixer позначила оригінальний пакет як конфлікт. Ви можете обійти цю проблему, створивши форк цього пакунка з новою назвою.

- final class Foo
+ class Foo
{
-   final public function bar()
+   public function bar()
    {
        // ...
    }
}

Коли ви запускаєте його, він робить наступне:

  • Оновлення файлів PHP виконується безпечно, швидко та продуктивно.
  • Зміни зберігаються постійно. Це не впливає на продуктивність під час використання Unfinalize.
  • Ніяких додаткових залежностей від вашого додатку. Unfinalize та його залежності компілюються в один файл phar.

Unfinalize Usage

Спочатку встановіть його:Потім, всередині вашого composer.json файлу, додайте пакунки постачальника, які ви хочете видалити остаточні ключові слова зсередини:

composer require stevebauman/unfinalize

{
    "unfinalize": [
        "vendor/package"
    ]
}

Далі, додайте команду unfinalize до вашоїcomposer.json, щоб вона виконувалася :composer update

{
  "scripts": {
    "post-update-cmd": [
      "@php vendor/bin/unfinalize run"
    ]
  }
}

Нарешті, запустіть composer update.

Параметри

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