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