{"id":24138,"date":"2021-05-12T10:03:00","date_gmt":"2021-05-12T07:03:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24138"},"modified":"2021-10-18T02:44:55","modified_gmt":"2021-10-17T23:44:55","slug":"verbessern-sie-ihre-laravel-codierungsstandards-mit-grumphp","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/verbessern-sie-ihre-laravel-codierungsstandards-mit-grumphp\/","title":{"rendered":"Verbessern Sie Ihre Laravel-Codierungsstandards mit GrumPHP"},"content":{"rendered":"<p>Egal, ob Sie ein erfahrener Entwickler oder ein Neuling sind, Sie sollten Ihre Programmierstandards verbessern, um ein besserer Entwickler zu werden. Unabh\u00e4ngig davon, ob Sie alleine oder mit einem Team arbeiten, ist es immer ratsam, w\u00e4hrend des gesamten Projekts die gleichen Codierungskonventionen zu verwenden. Aber die Einhaltung der gleichen Standards an allen Stellen ist nicht einfach, wenn wir dies manuell \u00fcberpr\u00fcfen. 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\u00e4lle schl\u00e4gt es nie fehl.<\/p>\n<p><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> ist eine Bibliothek, die jeden Git-Commit im Auge beh\u00e4lt. Wenn Ihr Code bestimmten Standards nicht entspricht, erlaubt Ihnen die Bibliothek nicht, Code zu \u00fcbergeben. Sie sollten zuerst Ihren Code korrigieren und dann k\u00f6nnen nur Sie sich auf Git festlegen.<\/p>\n<p>Klingt gut? Sehen wir es in Aktion.<\/p>\n<h3>Einstieg<\/h3>\n<p>Da wir \u00fcber Laravel-Codierungsstandards sprechen, sollten Sie ein Laravel-Projekt einrichten. Wenn Sie es nicht haben, installieren Sie es mit dem Befehl:<\/p>\n<pre><code>composer create-project --prefer-dist laravel\/laravel laravel-dev<\/code><\/pre>\n<p>Hier ist &#8218;laravel-dev&#8216; der Name Ihres Projekts. \u00d6ffnen Sie das Terminal in Ihrem Projekt-Root-Verzeichnis und initialisieren Sie das Git.<\/p>\n<pre><code>git init<\/code><\/pre>\n<p>Es ist zwingend erforderlich, Git in Ihrem Projekt zu haben, um GrumPHP nutzen zu k\u00f6nnen. Hier funktioniert es. Wenn wir GrumPHP installieren, erstellt es einen Hook im <code>.git<\/code>Ordner und \u00fcberwacht dann jeden Commit.<\/p>\n<p>F\u00fcgen Sie nun Ihre aktuellen Dateien hinzu und \u00fcbertragen Sie sie mit den folgenden Befehlen nacheinander in das Git.<\/p>\n<pre><code>git add -A<\/code><\/pre>\n<pre><code>git commit -m 'initial commit'<\/code><\/pre>\n<h3>Verbessern Sie den Laravel-Codierungsstandard mit GrumPHP<\/h3>\n<p>Sobald wir das Git-Setup in unserem Laravel-Projekt abgeschlossen haben, k\u00f6nnen wir mit der Installation der GrumPHP-Bibliothek beginnen. Um es zu installieren, f\u00fchren Sie den folgenden Befehl aus:<\/p>\n<pre><code>composer require --dev phpro\/grumphp<\/code><\/pre>\n<p>Sobald das Paket installiert ist, sollten Sie die folgende Meldung im Terminal sehen:<\/p>\n<p>Achtung! GrumPHP schn\u00fcffelt an deinen Commits!<\/p>\n<p>Dies bedeutet, dass das Paket erfolgreich installiert wurde. \u00d6ffnen Sie als N\u00e4chstes die <code>grumphp.yml<\/code>Datei und f\u00fcgen Sie den folgenden Code hinzu.<\/p>\n<pre><code>parameters:\n\u00a0\u00a0\u00a0\u00a0git_dir:. \u00a0\u00a0\u00a0\u00a0bin_dir: vendor\/bin\n\u00a0\u00a0\u00a0\u00a0tasks: { \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0phpcs: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0standard: PSR2\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0}<\/code><\/pre>\n<p>Im obigen Code ist der wichtige Teil die Zeile <code>standard: PSR2<\/code>. 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\u00fcrde GrumPHP seine Aufgabe ausf\u00fchren und uns \u00fcber den Fehler in einer Konsole informieren, wenn er gefunden wird.<\/p>\n<p>Wenn Sie die Coding-Standardbibliothek nicht installiert haben, f\u00fchren Sie den folgenden Befehl aus, um sie zu installieren:<\/p>\n<pre><code>composer require \"squizlabs\/php_codesniffer=*\"<\/code><\/pre>\n<p>Diese Bibliothek verf\u00fcgt \u00fcber PSR2-Codierungsstandards, die in ihrem Kern enthalten sind. Daher wird GrumPHP Ihren Laravel-Code mit dem PSR2 vergleichen und Ihnen \u00c4nderungen vorschlagen, wenn Sie nicht den PSR2-Standards folgen.<\/p>\n<p>Nehmen wir an, wir haben eine <code>ImageController.php<\/code>Datei in unserem Projekt und haben den folgenden Code darin.<\/p>\n<pre><code>public function store(Request $request)\n{\n\u00a0\u00a0\u00a0\u00a0if($request-&gt;hasFile('profile_image')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename with extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenamewithextension = $request-&gt;file('profile_image')-&gt;getClientOriginalName();\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename without extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get file extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$extension = $request-&gt;file('profile_image')-&gt;getClientOriginalExtension();\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/filename to store\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenametostore = $filename.'_'.time().'.'.$extension;\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Upload File\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$request-&gt;file('profile_image')-&gt;storeAs('public\/profile_images', $filenametostore);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(!file_exists(public_path('storage\/profile_images\/crop'))) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir(public_path('storage\/profile_images\/crop'), 0755);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ crop image\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img = Image::make(public_path('storage\/profile_images\/'.$filenametostore));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$croppath = public_path('storage\/profile_images\/crop\/'.$filenametostore);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img-&gt;crop($request-&gt;input('w'), $request-&gt;input('h'), $request-&gt;input('x1'), $request-&gt;input('y1'));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img-&gt;save($croppath);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ you can save crop image path below in database\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$path = asset('storage\/profile_images\/crop\/'.$filenametostore);\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return redirect('image')-&gt;with(['success' =&gt; \"Image cropped successfully.\", 'path' =&gt; $path]);\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Versuchen Sie als N\u00e4chstes, den obigen Code zu \u00fcbertragen, und Sie sollten eine Ausgabe wie die folgende sehen:<\/p>\n<p>Es gibt den Codierungsfehler im Detail zusammen mit der Zeilennummer und der Beschreibung an. Sie k\u00f6nnen auch die Zeile bemerken:<\/p>\n<p>PHPCBF KANN DIE 2 MARKIERTEN SNIFF-VERLETZUNGEN AUTOMATISCH BEHEBEN<\/p>\n<h3>So verwenden Sie den PHPCBF-Befehl<\/h3>\n<p>Durch Ausf\u00fchren eines PHPCBF-Befehls k\u00f6nnen wir einige Fehler automatisch beheben. Gehen Sie vom Terminal zum Verzeichnis &#8218;vendor\/bin&#8216; und f\u00fchren Sie den folgenden Befehl aus, um die Fehler mit PHPCBF zu beheben.<\/p>\n<pre><code>PHPCBF --standard=PSR2 PATH_TO_YOUR_CONTROLLER<\/code><\/pre>\n<p>Platzhalter durch die tats\u00e4chlichen Werte ersetzen. Wenn Sie diesen Befehl in Git bash ausf\u00fchren, erhalten Sie wahrscheinlich den Fehler &#8218;bash: phpcbf: command not found&#8216;. F\u00fchren Sie in diesem Fall diesen Befehl in der Windows-Eingabeaufforderung aus. In unserem Fall sehen wir die folgende Ausgabe auf dem Terminal.<\/p>\n<p>Beachten Sie, dass nicht alle Fehler von PHPCBH behoben werden. Manchmal m\u00fcssen Sie den Fehler auch manuell beheben. Wenn Sie nun versuchen, den Code zu \u00fcbertragen, sollten Sie die Erfolgsmeldung erhalten und der Code wird auch festgeschrieben.<\/p>\n<h3>Abschlie\u00dfende Gedanken<\/h3>\n<p>In diesem Tutorial haben wir die Verbesserung der Laravel-Codierungsstandards mit GrumPHP besprochen. Aber es ist nicht nur auf Laravel beschr\u00e4nkt. Sie k\u00f6nnen diese Bibliothek auch in Ihrem anderen CMS, Frameworks, verwenden. Wir verwenden die GrumPHP-Bibliothek f\u00fcr unsere Laravel-, WordPress- und Kern-PHP-Projekte. Es hilft uns wirklich, unseren Programmierstil konsequent beizubehalten.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/php_codesniffer-eine-bibliothek-zur-verbesserung-ihrer-php-codierungsstandards\/\" title=\"PHP_CodeSniffer \u2013 Eine Bibliothek zur Verbesserung Ihrer PHP-Codierungsstandards\">PHP_CodeSniffer \u2013 Eine Bibliothek zur Verbesserung Ihrer PHP-Codierungsstandards<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/eine-anleitung-zur-verbesserung-der-wordpress-codierungsstandards\/\" title=\"Eine Anleitung zur Verbesserung der WordPress-Codierungsstandards\">Eine Anleitung zur Verbesserung der WordPress-Codierungsstandards<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>GrumPHP ist eine Bibliothek, die uns hilft, die Codierungsstandards von Laravel zu verbessern. Es \u00fcberpr\u00fcft einfach jeden Git-Commit und hat einen Fehler gefunden, dann schl\u00e4gt der Commit fehl.<\/p>\n","protected":false},"author":1,"featured_media":20640,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[496],"tags":[845],"class_list":["post-24138","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=24138"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24138\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/20640"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=24138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=24138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=24138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}