{"id":24271,"date":"2021-05-12T09:48:00","date_gmt":"2021-05-12T06:48:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24271"},"modified":"2021-10-18T03:16:29","modified_gmt":"2021-10-18T00:16:29","slug":"migliora-i-tuoi-standard-di-codifica-laravel-usando-grumphp","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/migliora-i-tuoi-standard-di-codifica-laravel-usando-grumphp\/","title":{"rendered":"Migliora i tuoi standard di codifica Laravel usando GrumPHP"},"content":{"rendered":"<p>Non importa se sei uno sviluppatore esperto o un neofita, dovresti migliorare i tuoi standard di codifica per diventare uno sviluppatore migliore. Sia che lavori da solo o con un team, \u00e8 sempre una buona pratica avere le stesse convenzioni di codifica per tutto il progetto. Ma mantenere gli stessi standard in tutti i luoghi non \u00e8 facile se lo controlliamo manualmente. Pu\u00f2 capitare che tu abbia mancato lo standard anche se hai deciso di seguirlo. \u00c8 un errore umano, a volte ci siamo persi cose che non dovremmo. Per prevenire tali problemi, dovremmo automatizzare il nostro flusso di lavoro. In questo modo, il nostro sistema automatizzato si occuper\u00e0 del compito che gli abbiamo assegnato e il 99,99% delle volte non fallisce mai.<\/p>\n<p><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> \u00e8 una libreria che tiene d&#8217;occhio ogni tuo commit git. Se il tuo codice non segue determinati standard, la libreria non ti consente di eseguire il commit del codice. Dovresti prima correggere il tuo codice e poi solo tu sarai in grado di impegnarti in Git.<\/p>\n<p>Suona bene? Vediamolo in azione.<\/p>\n<h3>Iniziare<\/h3>\n<p>Poich\u00e9 stiamo parlando degli standard di codifica Laravel, dovresti avere una configurazione del progetto Laravel. Se non lo hai, installalo con il comando:<\/p>\n<pre><code>composer create-project --prefer-dist laravel\/laravel laravel-dev<\/code><\/pre>\n<p>Qui &#8216;laravel-dev&#8217; \u00e8 il nome del tuo progetto. Apri il terminale nella directory principale del tuo progetto e inizializza git.<\/p>\n<pre><code>git init<\/code><\/pre>\n<p>\u00c8 obbligatorio avere Git nel tuo progetto per sfruttare GrumPHP. Questo \u00e8 dove funziona. Quando installiamo GrumPHP, crea un hook all&#8217;interno della <code>.git<\/code>cartella e quindi tieni d&#8217;occhio ogni commit.<\/p>\n<p>Ora aggiungi e invia i tuoi file correnti a git usando i comandi sottostanti uno per uno.<\/p>\n<pre><code>git add -A<\/code><\/pre>\n<pre><code>git commit -m 'initial commit'<\/code><\/pre>\n<h3>Migliora lo standard di codifica Laravel usando GrumPHP<\/h3>\n<p>Una volta che abbiamo installato git nel nostro progetto Laravel, siamo pronti per installare la libreria GrumPHP. Per installarlo, esegui il comando seguente:<\/p>\n<pre><code>composer require --dev phpro\/grumphp<\/code><\/pre>\n<p>Una volta installato il pacchetto, dovresti vedere il seguente messaggio nel terminale:<\/p>\n<p>Attento! GrumPHP sta annusando i tuoi commit!<\/p>\n<p>Significa che il pacchetto \u00e8 stato installato correttamente. Quindi, apri il <code>grumphp.yml<\/code>file e aggiungi il codice seguente.<\/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>Nel codice sopra la parte importante \u00e8 la linea <code>standard: PSR2<\/code>. Qui, stiamo dicendo a GrumPHP che controlla le convenzioni di codifica PSR2 contro i file che stanno per eseguire il commit. Abbiamo usato PSR2 qui perch\u00e9 Laravel segue gli standard di codifica PSR2. Successivamente, GrumPHP eseguir\u00e0 il proprio compito e ci informer\u00e0 dell&#8217;errore in una console se trovato.<\/p>\n<p>Se non hai installato la libreria standard di codifica, esegui il comando seguente per installarlo:<\/p>\n<pre><code>composer require \"squizlabs\/php_codesniffer=*\"<\/code><\/pre>\n<p>Questa libreria ha standard di codifica PSR2 inclusi nel suo nucleo. Quindi, GrumPHP controller\u00e0 il tuo codice Laravel rispetto alla PSR2 e ti suggerir\u00e0 modifiche se non stai seguendo gli standard PSR2.<\/p>\n<p>Diciamo che abbiamo un <code>ImageController.php<\/code>file nel nostro progetto e che abbiamo il seguente pezzo di codice al suo interno.<\/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>Quindi, prova a eseguire il commit del codice sopra e dovresti vedere un output come di seguito:<\/p>\n<p>Fornisce l&#8217;errore di codifica nei dettagli insieme al numero di riga e alla descrizione. Potresti anche notare la riga:<\/p>\n<p>PHPCBF PU RISOLVERE AUTOMATICAMENTE LE 2 VIOLAZIONI SNIFF SEGNATE<\/p>\n<h3>Come usare il comando PHPCBF<\/h3>\n<p>Eseguendo un comando PHPCBF possiamo correggere automaticamente alcuni errori. Vai alla directory &quot;vendor\/bin&quot; dal terminale ed esegui il comando seguente per correggere gli errori utilizzando PHPCBF.<\/p>\n<pre><code>PHPCBF --standard=PSR2 PATH_TO_YOUR_CONTROLLER<\/code><\/pre>\n<p>Sostituisci il segnaposto con i valori effettivi. Probabilmente se stai eseguendo questo comando in Git bash otterrai l&#8217;errore di &quot;bash: phpcbf: comando non trovato&quot;. In tal caso, esegui questo comando nel prompt dei comandi di Windows. Nel nostro caso, vediamo il seguente output sul terminale.<\/p>\n<p>Tieni presente che non tutti gli errori vengono risolti da PHPCBH. A volte \u00e8 necessario risolvere l&#8217;errore anche manualmente. Ora, quando provi a eseguire il commit del codice, dovresti ricevere il messaggio di successo e anche il codice verr\u00e0 commesso.<\/p>\n<h3>Pensieri finali<\/h3>\n<p>In questo tutorial, abbiamo discusso del miglioramento degli standard di codifica di Laravel utilizzando GrumPHP. Ma non \u00e8 limitato solo a Laravel. Puoi anche utilizzare questa libreria nel tuo altro CMS, Frameworks. Utilizziamo la libreria GrumPHP per i nostri progetti Laravel, WordPress e PHP di base. Ci aiuta davvero a mantenere coerente il nostro stile di codifica.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/php_codesniffer-una-libreria-per-migliorare-i-tuoi-standard-di-codifica-php\/\" title=\"PHP_CodeSniffer \u2013 Una libreria per migliorare i tuoi standard di codifica PHP\">PHP_CodeSniffer \u2013 Una libreria per migliorare i tuoi standard di codifica PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/una-guida-su-come-migliorare-gli-standard-di-codifica-di-wordpress\/\" title=\"Una guida su come migliorare gli standard di codifica di WordPress\">Una guida su come migliorare gli standard di codifica di WordPress<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <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 \u00e8 una libreria che ci aiuta a migliorare gli standard di codifica di Laravel. Controlla semplicemente ogni tuo commit Git e trova eventuali errori, quindi fallisce il commit.<\/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":[500],"tags":[846],"class_list":["post-24271","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=24271"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24271\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/20640"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=24271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=24271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=24271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}