• Час читання ~4 хв
  • 10.03.2023

Сьогодні Tighten анонсував 1.0 випуск лінтера коду, орієнтованого на Laravel, і фіксера Duster.

Duster - це інструмент, який об'єднує Laravel Pint, PHP_CodeSniffer, PHP-CS-Fixer, і специфічні для Laravel-ворсинки Tighten в Tlint, щоб забезпечити потужний і всеосяжний набір інструментів для лінцювання та фіксації додатків Laravel.

Якщо ви читали наші статті про sharing правила PHPCS або вже знайомі з ідеєю публікації набору власних правил для ваших проектів. Дастер приймає базові думки Ларавеля в Pint, а потім додає потужність додаткових лінтерів і фіксаторів за допомогою інших трьох інструментів, які він об'єднує. За замовчуванням він дотримується стилю коду Tighten, але він також повністю налаштований відповідно до ваших уподобань.

Давайте подивимося, як встановити Duster, як його запустити, як інтегрувати в ваші автоматизовані робочі процеси та як налаштувати його (якщо хочете - ви можете бути задоволені його правилами за замовчуванням!) Встановлення Duster

 

Є кілька способів запустити Duster у своїй програмі, але найпростіший спосіб почати - встановити його як залежність від Composer у вашому

composer require tightenco/duster --dev

додатку.Вам не потрібно нічого публікувати або налаштовувати; Duster поставляється з продуманим набором стилів з коробки, і якщо вони вам подобаються, він готовий до роботи, як тільки закінчить встановлення. Запуск Duster

 

Є дві основні особливості, які надає Duster: «підкладка» і «фіксація». Лінти повідомляють вам, коли щось у вашому коді не синхронізовано з правилом; виправлення цього коду.

По-перше, ми можемо зробити основи: Лінтинг або виправлення всієї кодової бази.

Якщо ми запустимо lint, це дасть нам ворсинку всієї кодової бази, запустивши всі інструменти

./vendor/bin/duster lint

лінтингу: Це дасть нам вихід для кожного інструменту, і, як і будь-який лінтер, повернеться з кодом успіху або невдачі, який можна використовувати в інструментах CI або інших скриптах.

Screenshot of Duster showing the output of the lint command

Ми також можемо запустити виправлення, щоб повідомити всі включені інструменти для вирішення будь-яких проблем, які вони можуть у всій кодовій базі:

./vendor/bin/duster fix

Screenshot of Duster showing the output of the fix command

Лише лінтування "брудних" файлів

При введенні linter/fixer до існуючої кодової бази це часто може здатися приголомшливим: існує так багато маленьких виправлень, які вам потрібно зробити, у вас може виникнути спокуса викинути все це.

Одним із способів уникнути запуску будь-яких виправлень (або отримання тонни збоїв ворсу) для коду, над яким ви зараз не працюєте, є брудний прапор Duster's, який запускає linters/fixers лише на файлах, які не мають внесених змін.

./vendor/bin/duster lint --dirty
./vendor/bin/duster fix --dirty

Навіщо потрібна фіксація та облицювання?

Є дві основні причини, чому Duster, і багато подібних до нього інструментів, пропонують як підкладку, так і фіксацію. Навіщо додавати лінтинг, коли завжди можна просто все виправити?

По-перше, деякі команди можуть віддати перевагу робочому процесу, де неправильний код з'являється як невдала збірка (наприклад, як дія GitHub), а не виправлена.

А по-друге, деякі ворсинки не можуть бути виправлені автоматично. Комп'ютер може визначити, чи зламано ваш код, але недостатньо розумний, щоб виправити його за вас. Інтеграція Duster

У вашу CI

Як і більшість інструментів аналізу коду, команда Duster's lint повертає код успіху або помилки на основі того, чи вдалося лінтам досягти успіху. Це означає, що ви можете використовувати ./vendor/bin/duster lint у будь-якому конвеєрі CI, щоб вийти з ладу ваших збірок, якщо ваші ворсинки не збігаються. Ви також можете використовувати ./vendor/bin/duster fix як частину гачка хаскі або гачка CI для автоматичного форматування вашого коду.

Якщо ви використовуєте GitHub Actions, Duster дозволяє легко опублікувати конфігурацію дій, яка або розкриє ваш код, або виправить його. Запустіть ./vendor/bin/duster github-actions і дотримуйтесь підказок там, щоб додати дію GitHub до своєї кодової бази. Налаштування Duster (і його

інструментів)

Як і Pint, Duster втілює думки його творців (Tighten) про те, як повинен бути стилізований код. Але сам Duster і кожен з інструментів, які він імпортує, можна налаштувати на свій смак.

duster.json

Duster надає власний конфігураційний файл, duster.json. Цей файл дозволяє визначати файли та теки для включення або виключення з файлів за замовчуванням Laravel, на які він націлений за замовчуванням. Ви також можете використовувати його для визначення додаткових сценаріїв, які ви хочете запустити як частину потоку пилососів.

Наприклад, ви можете додати PHPStan до вашої команди lint за допомогою наступного duster.json:

{
    "scripts": {
        "lint": {
            "phpstan": ["./vendor/bin/phpstan", "analyse"]
        }
    }
}

Ви також можете визначити власні користувацькі доповнення до команди виправлення.

Залежності

You can configure each of Залежності with their native configuration files; you can learn more about how in the Customizing section of the Duster readme.

  • Пінта: pint.json
  • PHP_CodeSniffer: .phpcs.xml.dist
  • PHP-CS-Fixer: .php-cs-fixer.dist.php
  • Tlint: tlint.json
У підсумку ось і все! Таким чином, Duster — це інструмент для лінтування та виправлення проблем зі стилем коду у ваших програмах Laravel. Вважається, що він дотримується бажаних стандартів Tighten з коробки, але він також налаштовується на все, що вам подобається, включаючи власні спеціальні стандарти, якщо ви їх опублікували.

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