Verbessern Sie Ihre Laravel-Codierungsstandards mit GrumPHP
Egal, ob Sie ein erfahrener Entwickler oder ein Neuling sind, Sie sollten Ihre Programmierstandards verbessern, um ein besserer Entwickler zu werden. Unabhängig davon, ob Sie alleine oder mit einem Team arbeiten, ist es immer ratsam, während des gesamten Projekts die gleichen Codierungskonventionen zu verwenden. Aber die Einhaltung der gleichen Standards an allen Stellen ist nicht einfach, wenn wir dies manuell überprüfen. Es kann vorkommen, dass Sie den Standard verfehlt haben, selbst wenn Sie sich entschieden haben, ihm zu folgen. Es ist ein menschlicher Fehler, wir haben manchmal Dinge verpasst, die wir nicht sollten. Um solche Probleme zu vermeiden, sollten wir unseren Workflow automatisieren. Auf diese Weise erledigt unser automatisiertes System die Aufgabe, die wir ihm zugewiesen haben, und in 99,99% der Fälle schlägt es nie fehl.
GrumPHP ist eine Bibliothek, die jeden Git-Commit im Auge behält. Wenn Ihr Code bestimmten Standards nicht entspricht, erlaubt Ihnen die Bibliothek nicht, Code zu übergeben. Sie sollten zuerst Ihren Code korrigieren und dann können nur Sie sich auf Git festlegen.
Klingt gut? Sehen wir es in Aktion.
Einstieg
Da wir über Laravel-Codierungsstandards sprechen, sollten Sie ein Laravel-Projekt einrichten. Wenn Sie es nicht haben, installieren Sie es mit dem Befehl:
composer create-project --prefer-dist laravel/laravel laravel-dev
Hier ist ‘laravel-dev’ der Name Ihres Projekts. Öffnen Sie das Terminal in Ihrem Projekt-Root-Verzeichnis und initialisieren Sie das Git.
git init
Es ist zwingend erforderlich, Git in Ihrem Projekt zu haben, um GrumPHP nutzen zu können. Hier funktioniert es. Wenn wir GrumPHP installieren, erstellt es einen Hook im .git
Ordner und überwacht dann jeden Commit.
Fügen Sie nun Ihre aktuellen Dateien hinzu und übertragen Sie sie mit den folgenden Befehlen nacheinander in das Git.
git add -A
git commit -m 'initial commit'
Verbessern Sie den Laravel-Codierungsstandard mit GrumPHP
Sobald wir das Git-Setup in unserem Laravel-Projekt abgeschlossen haben, können wir mit der Installation der GrumPHP-Bibliothek beginnen. Um es zu installieren, führen Sie den folgenden Befehl aus:
composer require --dev phpro/grumphp
Sobald das Paket installiert ist, sollten Sie die folgende Meldung im Terminal sehen:
Achtung! GrumPHP schnüffelt an deinen Commits!
Dies bedeutet, dass das Paket erfolgreich installiert wurde. Öffnen Sie als Nächstes die grumphp.yml
Datei und fügen Sie den folgenden Code hinzu.
parameters:
git_dir:. bin_dir: vendor/bin
tasks: {
phpcs: {
standard: PSR2
}
}
Im obigen Code ist der wichtige Teil die Zeile standard: PSR2
. Hier teilen wir GrumPHP mit, dass die PSR2-Codierungskonventionen mit den Dateien verglichen werden, die festgeschrieben werden. Wir haben hier PSR2 verwendet, weil Laravel den PSR2-Codierungsstandards folgt. Danach würde GrumPHP seine Aufgabe ausführen und uns über den Fehler in einer Konsole informieren, wenn er gefunden wird.
Wenn Sie die Coding-Standardbibliothek nicht installiert haben, führen Sie den folgenden Befehl aus, um sie zu installieren:
composer require "squizlabs/php_codesniffer=*"
Diese Bibliothek verfügt über PSR2-Codierungsstandards, die in ihrem Kern enthalten sind. Daher wird GrumPHP Ihren Laravel-Code mit dem PSR2 vergleichen und Ihnen Änderungen vorschlagen, wenn Sie nicht den PSR2-Standards folgen.
Nehmen wir an, wir haben eine ImageController.php
Datei in unserem Projekt und haben den folgenden Code darin.
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]);
}
}
Versuchen Sie als Nächstes, den obigen Code zu übertragen, und Sie sollten eine Ausgabe wie die folgende sehen:
Es gibt den Codierungsfehler im Detail zusammen mit der Zeilennummer und der Beschreibung an. Sie können auch die Zeile bemerken:
PHPCBF KANN DIE 2 MARKIERTEN SNIFF-VERLETZUNGEN AUTOMATISCH BEHEBEN
So verwenden Sie den PHPCBF-Befehl
Durch Ausführen eines PHPCBF-Befehls können wir einige Fehler automatisch beheben. Gehen Sie vom Terminal zum Verzeichnis ‘vendor/bin’ und führen Sie den folgenden Befehl aus, um die Fehler mit PHPCBF zu beheben.
PHPCBF --standard=PSR2 PATH_TO_YOUR_CONTROLLER
Platzhalter durch die tatsächlichen Werte ersetzen. Wenn Sie diesen Befehl in Git bash ausführen, erhalten Sie wahrscheinlich den Fehler ‘bash: phpcbf: command not found’. Führen Sie in diesem Fall diesen Befehl in der Windows-Eingabeaufforderung aus. In unserem Fall sehen wir die folgende Ausgabe auf dem Terminal.
Beachten Sie, dass nicht alle Fehler von PHPCBH behoben werden. Manchmal müssen Sie den Fehler auch manuell beheben. Wenn Sie nun versuchen, den Code zu übertragen, sollten Sie die Erfolgsmeldung erhalten und der Code wird auch festgeschrieben.
Abschließende Gedanken
In diesem Tutorial haben wir die Verbesserung der Laravel-Codierungsstandards mit GrumPHP besprochen. Aber es ist nicht nur auf Laravel beschränkt. Sie können diese Bibliothek auch in Ihrem anderen CMS, Frameworks, verwenden. Wir verwenden die GrumPHP-Bibliothek für unsere Laravel-, WordPress- und Kern-PHP-Projekte. Es hilft uns wirklich, unseren Programmierstil konsequent beizubehalten.
Zum Thema passende Artikel
- PHP_CodeSniffer – Eine Bibliothek zur Verbesserung Ihrer PHP-Codierungsstandards
- Eine Anleitung zur Verbesserung der WordPress-Codierungsstandards