Popraw swoje standardy kodowania Laravel za pomocą GrumPHP
Bez względu na to, czy jesteś doświadczonym programistą, czy nowicjuszem, powinieneś poprawić swoje standardy kodowania, aby stać się lepszym programistą. Niezależnie od tego, czy pracujesz sam, czy z zespołem, zawsze dobrą praktyką jest stosowanie tych samych konwencji kodowania w całym projekcie. Ale utrzymanie tych samych standardów we wszystkich miejscach nie jest łatwe, jeśli sprawdzamy to ręcznie. Może się zdarzyć, że przegapiłeś standard, nawet jeśli zdecydowałeś się go przestrzegać. To ludzki błąd, czasami przeoczyliśmy rzeczy, których nie powinniśmy. Aby zapobiec takim problemom, powinniśmy zautomatyzować nasz przepływ pracy. W ten sposób nasz zautomatyzowany system zajmie się zadaniem, które mu przydzieliliśmy i przez 99,99% czasu nigdy nie zawodzi.
GrumPHP to biblioteka, która kontroluje każdy Twój git commit. Jeśli twój kod nie jest zgodny z określonymi standardami, biblioteka nie pozwala na zatwierdzenie kodu. Powinieneś najpierw naprawić swój kod, a dopiero potem możesz zatwierdzić Git.
Brzmi dobrze? Zobaczmy to w akcji.
Pierwsze kroki
Ponieważ mówimy o standardach kodowania Laravel, powinieneś mieć konfigurację projektu Laravel. Jeśli go nie masz, zainstaluj go za pomocą polecenia:
composer create-project --prefer-dist laravel/laravel laravel-dev
Tutaj ‘laravel-dev’ to nazwa twojego projektu. Otwórz terminal w katalogu głównym projektu i zainicjuj git.
git init
Aby korzystać z GrumPHP, musisz mieć Git w swoim projekcie. Tutaj to działa. Kiedy instalujemy GrumPHP, tworzy on podpięcie w .git
folderze, a następnie obserwuje każde zatwierdzenie.
Teraz dodaj i zatwierdź swoje bieżące pliki w git za pomocą poniższych poleceń jeden po drugim.
git add -A
git commit -m 'initial commit'
Popraw standard kodowania Laravel za pomocą GrumPHP
Po skonfigurowaniu git w naszym projekcie Laravel możemy rozpocząć instalację biblioteki GrumPHP. Aby go zainstalować, uruchom poniższe polecenie:
composer require --dev phpro/grumphp
Po zainstalowaniu pakietu powinieneś zobaczyć poniższy komunikat w terminalu:
Uważaj! GrumPHP sniffuje twoje commity!
Oznacza to, że pakiet został pomyślnie zainstalowany. Następnie otwórz grumphp.yml
plik i dodaj do niego poniższy kod.
parameters:
git_dir:. bin_dir: vendor/bin
tasks: {
phpcs: {
standard: PSR2
}
}
W powyższym kodzie ważną częścią jest linia standard: PSR2
. Tutaj mówimy GrumPHP, aby sprawdził konwencje kodowania PSR2 z plikami, które mają zostać zatwierdzone. Użyliśmy tutaj PSR2, ponieważ Laravel przestrzega standardów kodowania PSR2. Następnie GrumPHP wykona swoje zadanie i poinformuje nas o błędzie w konsoli, jeśli zostanie znaleziony.
Jeśli nie zainstalowałeś standardowej biblioteki kodowania, uruchom poniższe polecenie, aby ją zainstalować:
composer require "squizlabs/php_codesniffer=*"
Ta biblioteka zawiera standardy kodowania PSR2 zawarte w jej rdzeniu. Tak więc GrumPHP sprawdzi twój kod Laravela względem PSR2 i zasugeruje zmiany, jeśli nie przestrzegasz standardów PSR2.
Załóżmy, że mamy ImageController.php
plik w naszym projekcie i mamy w nim następujący fragment kodu.
public function store(Request $request)
{
if($request->hasFile('profile_image')) {
//get filename with extension
$filenamewithextension = $request->file('profile_image')->getClientOriginalName();
//get filename without extension
$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);
//get file extension
$extension = $request->file('profile_image')->getClientOriginalExtension();
//filename to store
$filenametostore = $filename.'_'.time().'.'.$extension;
//Upload File
$request->file('profile_image')->storeAs('public/profile_images', $filenametostore);
if(!file_exists(public_path('storage/profile_images/crop'))) {
mkdir(public_path('storage/profile_images/crop'), 0755);
}
// crop image
$img = Image::make(public_path('storage/profile_images/'.$filenametostore));
$croppath = public_path('storage/profile_images/crop/'.$filenametostore);
$img->crop($request->input('w'), $request->input('h'), $request->input('x1'), $request->input('y1'));
$img->save($croppath);
// you can save crop image path below in database
$path = asset('storage/profile_images/crop/'.$filenametostore);
return redirect('image')->with(['success' => "Image cropped successfully.", 'path' => $path]);
}
}
Następnie spróbuj zatwierdzić powyższy kod i powinieneś zobaczyć coś takiego jak poniżej:
Podaje szczegółowo błąd kodowania wraz z numerem linii i opisem. Możesz również zauważyć linię:
PHPCBF MOŻE AUTOMATYCZNIE NAPRAWIĆ 2 ZAZNACZONE NARUSZENIA SNIFF
Jak korzystać z polecenia PHPCBF
Uruchamiając polecenie PHPCBF możemy automatycznie naprawić niektóre błędy. Udaj się do katalogu „vendor/bin" z terminala i uruchom poniższe polecenie, aby naprawić błędy za pomocą PHPCBF.
PHPCBF --standard=PSR2 PATH_TO_YOUR_CONTROLLER
Zastąp symbol zastępczy rzeczywistymi wartościami. Prawdopodobnie, jeśli uruchomisz to polecenie w Git bash, pojawi się błąd „bash: phpcbf: nie znaleziono polecenia”. W takim przypadku uruchom to polecenie w wierszu poleceń systemu Windows. W naszym przypadku widzimy następujące dane wyjściowe na terminalu.
Pamiętaj, że nie wszystkie błędy są rozwiązywane przez PHPCBH. Czasami trzeba również rozwiązać błąd ręcznie. Teraz, gdy próbujesz zatwierdzić kod, powinieneś otrzymać komunikat o powodzeniu, a kod również zostanie zatwierdzony.
Końcowe przemyślenia
W tym samouczku omówiliśmy ulepszanie standardów kodowania Laravela za pomocą GrumPHP. Ale to nie ogranicza się tylko do Laravela. Możesz również użyć tej biblioteki w innych CMS, Frameworkach. Używamy biblioteki GrumPHP do naszych projektów Laravel, WordPress i podstawowych projektów PHP. To naprawdę pomaga nam konsekwentnie utrzymywać nasz styl kodowania.
Powiązane artykuły
- PHP_CodeSniffer – Biblioteka do ulepszania standardów kodowania PHP
- Przewodnik po tym, jak ulepszyć standardy kodowania WordPress