{"id":24143,"date":"2021-05-12T09:24:00","date_gmt":"2021-05-12T06:24:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24143"},"modified":"2021-10-18T02:19:23","modified_gmt":"2021-10-17T23:19:23","slug":"ameliorez-vos-normes-de-codage-laravel-en-utilisant-grumphp","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/ameliorez-vos-normes-de-codage-laravel-en-utilisant-grumphp\/","title":{"rendered":"Am\u00e9liorez vos normes de codage Laravel en utilisant GrumPHP"},"content":{"rendered":"<p>Que vous soyez un d\u00e9veloppeur exp\u00e9riment\u00e9 ou novice, vous devez am\u00e9liorer vos normes de codage pour devenir un meilleur d\u00e9veloppeur. Que vous travailliez seul ou en \u00e9quipe, il est toujours recommand\u00e9 d&rsquo;avoir les m\u00eames conventions de codage tout au long du projet. Mais maintenir les m\u00eames normes partout n&rsquo;est pas facile si nous le v\u00e9rifions manuellement. Il peut arriver que vous ayez manqu\u00e9 la norme m\u00eame si vous avez d\u00e9cid\u00e9 de la suivre. C&rsquo;est une erreur humaine, on a rat\u00e9 parfois des choses qu&rsquo;il ne fallait pas. Pour \u00e9viter de tels probl\u00e8mes, nous devons automatiser notre flux de travail. Ce faisant, notre syst\u00e8me automatis\u00e9 s&rsquo;occupera de la t\u00e2che que nous lui avons assign\u00e9e et 99,99% du temps, il n&rsquo;\u00e9choue jamais.<\/p>\n<p><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> est une biblioth\u00e8que qui garde un \u0153il sur chaque commit git. Si votre code ne respecte pas les normes donn\u00e9es, la biblioth\u00e8que ne vous permet pas de valider le code. Vous devez d&rsquo;abord corriger votre code, puis vous seul pouvez vous engager dans Git.<\/p>\n<p>\u00c7a a l&rsquo;air bien? Voyons-le en action.<\/p>\n<h3>Commencer<\/h3>\n<p>Comme nous parlons des normes de codage Laravel, vous devriez avoir une configuration de projet Laravel. Si vous ne l&rsquo;avez pas, installez-le par la commande\u00a0:<\/p>\n<pre><code>composer create-project --prefer-dist laravel\/laravel laravel-dev<\/code><\/pre>\n<p>Ici &lsquo;laravel-dev&rsquo; est le nom de votre projet. Ouvrez le terminal dans le r\u00e9pertoire racine de votre projet et initialisez le fichier git.<\/p>\n<pre><code>git init<\/code><\/pre>\n<p>Il est obligatoire d&rsquo;avoir Git dans votre projet afin de profiter de GrumPHP. C&rsquo;est l\u00e0 que \u00e7a marche. Lorsque nous installons GrumPHP, il cr\u00e9e un hook dans le <code>.git<\/code>dossier, puis surveille chaque commit.<\/p>\n<p>Maintenant, ajoutez et validez vos fichiers actuels dans le git en utilisant les commandes ci-dessous une par une.<\/p>\n<pre><code>git add -A<\/code><\/pre>\n<pre><code>git commit -m 'initial commit'<\/code><\/pre>\n<h3>Am\u00e9liorer la norme de codage Laravel \u00e0 l&rsquo;aide de GrumPHP<\/h3>\n<p>Une fois que nous avons configur\u00e9 git dans notre projet Laravel, nous sommes pr\u00eats \u00e0 installer la biblioth\u00e8que GrumPHP. Pour l&rsquo;installer, ex\u00e9cutez la commande ci-dessous\u00a0:<\/p>\n<pre><code>composer require --dev phpro\/grumphp<\/code><\/pre>\n<p>Une fois le package install\u00e9, vous devriez voir le message ci-dessous dans le terminal\u00a0:<\/p>\n<p>Attention! GrumPHP renifle vos commits !<\/p>\n<p>Cela signifie que le paquet est install\u00e9 avec succ\u00e8s. Ensuite, ouvrez le <code>grumphp.yml<\/code>fichier et ajoutez-y le code ci-dessous.<\/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>Dans le code ci-dessus, la partie importante est la ligne <code>standard: PSR2<\/code>. Ici, nous disons \u00e0 GrumPHP de v\u00e9rifier les conventions de codage PSR2 par rapport aux fichiers qui vont \u00eatre valid\u00e9s. Nous avons utilis\u00e9 PSR2 ici car Laravel suit les normes de codage PSR2. Apr\u00e8s cela, GrumPHP effectuerait sa t\u00e2che et nous informerait de l&rsquo;erreur dans une console si elle \u00e9tait trouv\u00e9e.<\/p>\n<p>Si vous n&rsquo;avez pas install\u00e9 la biblioth\u00e8que standard de codage, ex\u00e9cutez la commande ci-dessous pour l&rsquo;installer\u00a0:<\/p>\n<pre><code>composer require \"squizlabs\/php_codesniffer=*\"<\/code><\/pre>\n<p>Cette biblioth\u00e8que a des normes de codage PSR2 incluses dans son noyau. Ainsi, GrumPHP v\u00e9rifiera votre code Laravel par rapport au PSR2 et vous sugg\u00e9rera des modifications si vous ne suivez pas les normes PSR2.<\/p>\n<p>Disons que nous avons un <code>ImageController.php<\/code>fichier dans notre projet et que le morceau de code suivant s&rsquo;y trouve.<\/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>Ensuite, essayez de valider le code ci-dessus et vous devriez voir une sortie comme ci-dessous\u00a0:<\/p>\n<p>Il donne l&rsquo;erreur de codage en d\u00e9tail avec le num\u00e9ro de ligne et la description. Vous pouvez \u00e9galement remarquer la ligne\u00a0:<\/p>\n<p>PHPCBF PEUT CORRIGER AUTOMATIQUEMENT LES 2 VIOLATIONS SNIFF MARQU\u00c9ES<\/p>\n<h3>Comment utiliser la commande PHPCBF<\/h3>\n<p>En ex\u00e9cutant une commande PHPCBF, nous pouvons corriger certaines erreurs automatiquement. Rendez-vous dans le r\u00e9pertoire &lsquo;vendor\/bin&rsquo; du terminal et ex\u00e9cutez la commande ci-dessous pour corriger les erreurs \u00e0 l&rsquo;aide de PHPCBF.<\/p>\n<pre><code>PHPCBF --standard=PSR2 PATH_TO_YOUR_CONTROLLER<\/code><\/pre>\n<p>Remplacez l&rsquo;espace r\u00e9serv\u00e9 par les valeurs r\u00e9elles. Si vous ex\u00e9cutez cette commande dans Git bash, vous obtiendrez probablement l&rsquo;erreur &quot;bash: phpcbf: command not found&quot;. Dans ce cas, ex\u00e9cutez cette commande dans l&rsquo;invite de commande Windows. Dans notre cas, nous voyons la sortie suivante sur le terminal.<\/p>\n<p>Notez que toutes les erreurs ne sont pas r\u00e9solues par PHPCBH. Parfois, vous devez \u00e9galement r\u00e9soudre l&rsquo;erreur manuellement. Maintenant, lorsque vous essayez de valider le code, vous devriez obtenir le message de r\u00e9ussite et le code est \u00e9galement valid\u00e9.<\/p>\n<h3>Derni\u00e8res pens\u00e9es<\/h3>\n<p>Dans ce tutoriel, nous avons discut\u00e9 de l&rsquo;am\u00e9lioration des normes de codage Laravel \u00e0 l&rsquo;aide de GrumPHP. Mais ce n&rsquo;est pas limit\u00e9 \u00e0 Laravel seulement. Vous pouvez \u00e9galement utiliser cette biblioth\u00e8que dans vos autres CMS, Frameworks. Nous utilisons la biblioth\u00e8que GrumPHP pour nos projets Laravel, WordPress et PHP de base. Cela nous aide vraiment \u00e0 maintenir notre style de codage de mani\u00e8re coh\u00e9rente.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/php_codesniffer-une-bibliotheque-pour-ameliorer-vos-normes-de-codage-php\/\" title=\"PHP_CodeSniffer - Une biblioth\u00e8que pour am\u00e9liorer vos normes de codage PHP\">PHP_CodeSniffer &#8211; Une biblioth\u00e8que pour am\u00e9liorer vos normes de codage PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/un-guide-sur-la-facon-d-ameliorer-les-normes-de-codage-wordpress\/\" title=\"Un guide sur la fa\u00e7on d&#039;am\u00e9liorer les normes de codage WordPress\">Un guide sur la fa\u00e7on d&rsquo;am\u00e9liorer les normes de codage WordPress<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <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 est une biblioth\u00e8que qui nous aide \u00e0 am\u00e9liorer les normes de codage Laravel. Il v\u00e9rifie simplement chaque commit Git et trouve une erreur, puis \u00e9choue le 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":[497],"tags":[844],"class_list":["post-24143","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24143"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24143\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/20640"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}