• Czas czytania ~4 min
  • 10.03.2023

Dzisiaj Tighten ogłosił wydanie 1.0 skoncentrowanego na Laravel kodu Linter i fixer Duster.

Duster to narzędzie, które łączy Laravel Pint, PHP_CodeSniffer, PHP-CS-Fixer oraz specyficzne dla Laravel linty firmy Tighten w Tilint, aby zapewnić potężny i wszechstronny zestaw narzędzi do lintingu i naprawiania dla aplikacji Laravel.

Jeśli czytałeś nasze artykuły o dzieleniu reguł PHPCS lub dzielenie reguł PHP-CS-Fixer, znasz już ideę publikowania zestawu własnych reguł dla swoich projektów. Duster bierze podstawowe opinie Laravela w Pint, a następnie dodaje moc dodatkowych linterów i fixerów za pomocą pozostałych trzech narzędzi, które łączy. Domyślnie trzyma się stylu kodu < href="https://github.com/tighten/duster/blob/main/style-guide.md">Tighten, ale jest również całkowicie konfigurowalny zgodnie z Twoimi preferencjami.

Rzućmy okiem na to, jak zainstalować Dustera, jak go uruchomić, jak zintegrować go z automatycznymi przepływami pracy i jak go skonfigurować (jeśli chcesz - możesz być zadowolony z jego domyślnych reguł!)

Instalacja

Dustera Istnieje kilka sposobów uruchomienia Dustera w aplikacji, ale najprostszym sposobem na rozpoczęcie jest zainstalowanie go jako zależności Composer w aplikacji.

composer require tightenco/duster --dev

Duster jest dostarczany z opiniotwórczym zestawem stylów po wyjęciu z pudełka, a jeśli ci się spodobają, jest gotowy do pracy, gdy tylko zakończy instalację.

Uruchamianie Dustera

Istnieją dwie główne cechy, które zapewnia Duster: "linting" i "fixing". Lints informuje, kiedy coś w kodzie nie jest zsynchronizowane z regułą; Naprawianie naprawia ten kod.

Najpierw możemy wykonać podstawy: Linting lub naprawienie całej bazy kodu.

Jeśli uruchomimy lint, da nam to kłaczki całej bazy kodu, uruchamiając wszystkie narzędzia lintingu:

./vendor/bin/duster lint

To da nam dane wyjściowe dla każdego narzędzia i, jak każdy linter, powróci z kodem sukcesu lub niepowodzenia, który może być użyty w narzędziach CI lub innych skryptach.

Screenshot of Duster showing the output of the lint command

Możemy również uruchomić poprawkę, aby powiedzieć wszystkim dołączonym narzędziom, aby naprawiły wszelkie problemy, które mogą w całej bazie kodu:

./vendor/bin/duster fix

Screenshot of Duster showing the output of the fix command

Tylko linting "brudnych" plików

Podczas wprowadzania linter/fixera do istniejącej bazy kodu często może wydawać się przytłaczające: jest tak wiele małych poprawek, które musisz wprowadzić, że możesz ulec pokusie, aby wyrzucić całość.

Jednym ze sposobów na uniknięcie uruchamiania jakichkolwiek poprawek (lub uzyskiwania mnóstwa błędów lint) dla kodu, nad którym obecnie nie pracujesz, jest flaga Dustera --dirty, która uruchamia linters/fixery tylko na plikach, które mają niezatwierdzone zmiany.

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

Dlaczego mocowanie i linting?

Istnieją dwa główne powody, dla których Duster i wiele podobnych narzędzi oferuje zarówno linting, jak i mocowanie. Po co dodawać linting, skoro zawsze można wszystko naprawić?

Po pierwsze, niektóre zespoły mogą preferować przepływ pracy, w którym nieprawidłowy kod jest wyświetlany jako nieudana kompilacja (np. jako akcja GitHub) zamiast naprawionej.

Po drugie, niektórych kłaczków nie można naprawić automatycznie. Komputer może stwierdzić, czy kod jest uszkodzony, ale nie jest wystarczająco inteligentny, aby go naprawić.

Integracja Duster z CI

Podobnie jak większość narzędzi do analizy kodu, polecenie lint Dustera zwraca kod sukcesu lub błędu w zależności od tego, czy linty się powiodły. Oznacza to, że możesz użyć ./vendor/bin/duster lint w dowolnym potoku CI, aby zawieść kompilacje, jeśli twoje linty nie są dopasowane. Możesz również użyć ./vendor/bin/duster fix jako części haka Husky lub haka CI, aby automatycznie sformatować kod.

Jeśli używasz akcji GitHub, Duster ułatwia publikowanie konfiguracji akcji, która albo lintuje twój kod, albo go naprawi. Uruchom ./vendor/bin/duster github-actions i postępuj zgodnie z instrukcjami, aby dodać akcję GitHub do bazy kodu.

Konfiguracja Dustera (i jego narzędzi)

Podobnie jak Pint, Duster ucieleśnia opinie swoich twórców (Tighten) na temat tego, jak powinien być stylizowany kod. Ale sam Duster i każde z importowanych narzędzi można skonfigurować według własnych upodobań.

duster.json

Duster udostępnia własny plik konfiguracyjny, duster.json. Ten plik umożliwia zdefiniowanie plików i folderów, które domyślnie uwzględniają lub wykluczają z domyślnych plików Laravel. Możesz go również użyć do zdefiniowania dodatkowych skryptów, które chcesz uruchomić w ramach przepływu pyłu.

Na przykład możesz dodać PHPStan do polecenia lint za pomocą następującego duster.json:

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

Możesz także zdefiniować własne niestandardowe dodatki do polecenia fix.

Zależności

You can configure each of Zależności with their native configuration files; you can learn more about how in the Customizing section of the Duster readme.

  • Pint: pint.json
  • PHP_CodeSniffer: .phpcs.xml.dist
  • PHP-CS-Fixer: .php-cs-fixer.dist.php
  • Tlint: tlint.json

Podsumowując

: To wszystko! Podsumowując, Duster to narzędzie do lintingu i naprawiania problemów ze stylem kodu w aplikacjach Laravel. Jest opiniotwórczy, trzyma preferowane standardy Tighten po wyjęciu z pudełka, ale można go również skonfigurować do czegokolwiek chcesz - w tym własnych niestandardowych standardów, jeśli je opublikowałeś.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297