{"id":27783,"date":"2021-05-12T09:41:00","date_gmt":"2021-05-12T06:41:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27783"},"modified":"2021-10-17T05:02:33","modified_gmt":"2021-10-17T02:02:33","slug":"forbattra-dina-laravel-kodningsstandarder-med-grumphp","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/forbattra-dina-laravel-kodningsstandarder-med-grumphp\/","title":{"rendered":"F\u00f6rb\u00e4ttra dina Laravel-kodningsstandarder med GrumPHP"},"content":{"rendered":"<p>Oavsett om du \u00e4r en erfaren utvecklare eller en fr\u00e4schare, b\u00f6r du f\u00f6rb\u00e4ttra dina kodningsstandarder f\u00f6r att bli en b\u00e4ttre utvecklare. Antingen arbetar du ensam eller tillsammans med ett team, det \u00e4r alltid bra att ha samma kodkonventioner under hela projektet. Men att h\u00e5lla samma standard p\u00e5 alla platser \u00e4r inte l\u00e4tt om vi kontrollerar det manuellt. Det kan h\u00e4nda att du saknade standarden \u00e4ven om du best\u00e4mde dig f\u00f6r att f\u00f6lja den. Det \u00e4r ett m\u00e4nskligt fel, vi saknade ibland saker som vi inte borde. F\u00f6r att f\u00f6rhindra s\u00e5dana problem b\u00f6r vi automatisera v\u00e5rt arbetsfl\u00f6de. Genom att g\u00f6ra det kommer v\u00e5rt automatiska system att ta hand om den uppgift vi har tilldelat det och 99,99% av tiden misslyckas det aldrig.<\/p>\n<p><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> \u00e4r ett bibliotek som h\u00e5ller ett \u00f6ga p\u00e5 varje git-engagemang. Om din kod inte f\u00f6ljer givna standarder till\u00e5ter inte biblioteket dig att beg\u00e5 kod. Du b\u00f6r fixa din kod f\u00f6rst och sedan bara kan du beg\u00e5 Git.<\/p>\n<p>L\u00e5ter bra? L\u00e5t oss se det i aktion.<\/p>\n<h3>Komma ig\u00e5ng<\/h3>\n<p>Eftersom vi pratar om Laravel-kodningsstandarder b\u00f6r du ha en Laravel-projektinstallation. Om du inte har det installerar du det med kommandot:<\/p>\n<pre><code>composer create-project --prefer-dist laravel\/laravel laravel-dev<\/code><\/pre>\n<p>H\u00e4r \u00e4r &#8217;laravel-dev&#8217; namnet p\u00e5 ditt projekt. \u00d6ppna terminalen i din projektkatalog och initiera git.<\/p>\n<pre><code>git init<\/code><\/pre>\n<p>Det \u00e4r obligatoriskt att ha Git i ditt projekt f\u00f6r att kunna dra nytta av GrumPHP. Det \u00e4r h\u00e4r det fungerar. N\u00e4r vi installerar GrumPHP skapar den en krok inuti <code>.git<\/code>mappen och h\u00e5ller sedan koll p\u00e5 varje engagemang.<\/p>\n<p>L\u00e4gg nu till och beg\u00e5 dina nuvarande filer till git med kommandona nedan en efter en.<\/p>\n<pre><code>git add -A<\/code><\/pre>\n<pre><code>git commit -m 'initial commit'<\/code><\/pre>\n<h3>F\u00f6rb\u00e4ttra Laravel-kodningsstandarden med GrumPHP<\/h3>\n<p>N\u00e4r vi v\u00e4l har installerat git i v\u00e5rt Laravel-projekt \u00e4r det bra att installera GrumPHP-biblioteket. F\u00f6r att installera det, k\u00f6r kommandot nedan:<\/p>\n<pre><code>composer require --dev phpro\/grumphp<\/code><\/pre>\n<p>N\u00e4r paketet \u00e4r installerat b\u00f6r du se meddelandet nedan i terminalen:<\/p>\n<p>Se upp! GrumPHP sniffar dina \u00e5taganden!<\/p>\n<p>Det betyder att paketet har installerats framg\u00e5ngsrikt. \u00d6ppna sedan <code>grumphp.yml<\/code>filen och l\u00e4gg till koden nedan i den.<\/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>I ovanst\u00e5ende kod \u00e4r den viktiga delen linjen <code>standard: PSR2<\/code>. H\u00e4r ber\u00e4ttar vi f\u00f6r GrumPHP att kontrollera PSR2-kodningskonventioner mot de filer som kommer att beg\u00e5. Vi anv\u00e4nde PSR2 h\u00e4r eftersom Laravel f\u00f6ljer PSR2-kodningsstandarderna. Efter detta skulle GrumPHP utf\u00f6ra sin uppgift och informera oss om felet i en konsol om den hittades.<\/p>\n<p>Om du inte har installerat kodande standardbibliotek k\u00f6r du kommandot nedan f\u00f6r att installera det:<\/p>\n<pre><code>composer require \"squizlabs\/php_codesniffer=*\"<\/code><\/pre>\n<p>Detta bibliotek har PSR2-kodningsstandarder som ing\u00e5r i k\u00e4rnan. S\u00e5 GrumPHP kontrollerar din Laravel-kod mot PSR2 och f\u00f6resl\u00e5r att du \u00e4ndrar om du inte f\u00f6ljer PSR2-standarder.<\/p>\n<p>L\u00e5t oss s\u00e4ga att vi har en <code>ImageController.php<\/code>fil i v\u00e5rt projekt och har f\u00f6ljande kodkod i den.<\/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>F\u00f6rs\u00f6k sedan att beg\u00e5 koden ovan s\u00e5 ska du se utdata som nedan:<\/p>\n<p>Det ger kodningsfelet i detaljer tillsammans med radnummer och beskrivning. Du kanske ocks\u00e5 m\u00e4rker raden:<\/p>\n<p>PHPCBF KAN FIXA DE 2 M\u00c4RKADE SNIFF-\u00d6VERTR\u00c4DELSERNA AUTOMATISKT<\/p>\n<h3>Hur man anv\u00e4nder PHPCBF Command<\/h3>\n<p>Genom att k\u00f6ra ett PHPCBF-kommando kan vi fixa vissa fel automatiskt. G\u00e5 till katalogen &#8217;leverant\u00f6r \/ soptunnel&#8217; fr\u00e5n terminalen och k\u00f6r kommandot nedan f\u00f6r att \u00e5tg\u00e4rda felen med PHPCBF.<\/p>\n<pre><code>PHPCBF --standard=PSR2 PATH_TO_YOUR_CONTROLLER<\/code><\/pre>\n<p>Ers\u00e4tt platsh\u00e5llaren med de faktiska v\u00e4rdena. F\u00f6rmodligen om du k\u00f6r det h\u00e4r kommandot i Git bash f\u00e5r du felet &#8217;bash: phpcbf: kommandot hittades inte&#8217;. I s\u00e5 fall k\u00f6r du det h\u00e4r kommandot i Windows-kommandotolken. I v\u00e5rt fall ser vi f\u00f6ljande utg\u00e5ng p\u00e5 terminalen.<\/p>\n<p>Notera att inte alla fel l\u00f6ses av PHPCBH. Ibland m\u00e5ste du ocks\u00e5 l\u00f6sa felet manuellt. Nu n\u00e4r du f\u00f6rs\u00f6ker beg\u00e5 koden b\u00f6r du f\u00e5 framg\u00e5ngsmeddelandet och koden ocks\u00e5 bli engagerad.<\/p>\n<h3>Slutgiltiga tankar<\/h3>\n<p>I denna handledning har vi diskuterat f\u00f6rb\u00e4ttring av Laravel-kodningsstandarder med GrumPHP. Men det \u00e4r inte begr\u00e4nsat till endast Laravel. Du kan ocks\u00e5 anv\u00e4nda detta bibliotek i dina andra CMS, Frameworks. Vi anv\u00e4nder GrumPHP-biblioteket f\u00f6r v\u00e5ra Laravel-, WordPress- och k\u00e4rn-PHP-projekt. Det hj\u00e4lper oss verkligen att beh\u00e5lla v\u00e5r kodningsstil konsekvent.<\/p>\n<h4>relaterade artiklar<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/php_codesniffer-ett-bibliotek-for-att-forbattra-dina-php-kodningsstandarder\/\" title=\"PHP_CodeSniffer - Ett bibliotek f\u00f6r att f\u00f6rb\u00e4ttra dina PHP-kodningsstandarder\">PHP_CodeSniffer &#8211; Ett bibliotek f\u00f6r att f\u00f6rb\u00e4ttra dina PHP-kodningsstandarder<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/en-guide-om-hur-du-forbattrar-wordpress-kodningsstandarder\/\" title=\"En guide om hur du f\u00f6rb\u00e4ttrar WordPress-kodningsstandarder\">En guide om hur du f\u00f6rb\u00e4ttrar WordPress-kodningsstandarder<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <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 \u00e4r ett bibliotek som hj\u00e4lper oss att f\u00f6rb\u00e4ttra Laravels kodningsstandarder. Det kontrollerar bara ditt Git-engagemang och hittade n\u00e5got fel och misslyckas sedan med kommit.<\/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":[503],"tags":[850],"class_list":["post-27783","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-10","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/27783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/comments?post=27783"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/27783\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/20640"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=27783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=27783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=27783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}