{"id":27656,"date":"2021-05-12T09:30:00","date_gmt":"2021-05-12T06:30:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27656"},"modified":"2021-10-17T17:13:55","modified_gmt":"2021-10-17T14:13:55","slug":"mejore-sus-estandares-de-codificacion-de-laravel-usando-grumphp","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/mejore-sus-estandares-de-codificacion-de-laravel-usando-grumphp\/","title":{"rendered":"Mejore sus est\u00e1ndares de codificaci\u00f3n de Laravel usando GrumPHP"},"content":{"rendered":"<p>No importa si eres un desarrollador experimentado o un novato, debes mejorar tus est\u00e1ndares de codificaci\u00f3n para convertirte en un mejor desarrollador. Ya sea que est\u00e9 trabajando solo o con un equipo, siempre es una buena pr\u00e1ctica tener las mismas convenciones de codificaci\u00f3n durante todo el proyecto. Pero mantener los mismos est\u00e1ndares en todos los lugares no es f\u00e1cil si lo estamos verificando manualmente. Puede suceder que no cumpli\u00f3 con el est\u00e1ndar incluso si decidi\u00f3 seguirlo. Es un error humano, a veces pasamos por alto cosas que no deber\u00edamos. Para evitar estos problemas, debemos automatizar nuestro flujo de trabajo. Al hacerlo, nuestro sistema automatizado se encargar\u00e1 de la tarea que le hemos asignado y el 99,99% de las veces nunca falla.<\/p>\n<p><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a> es una biblioteca que <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">vigila<\/a> cada confirmaci\u00f3n de git. Si su c\u00f3digo no sigue los est\u00e1ndares dados, la biblioteca no le permite confirmar el c\u00f3digo. Primero debe corregir su c\u00f3digo y luego solo usted podr\u00e1 comprometerse con Git.<\/p>\n<p>\u00bfSuena bien? Ve\u00e1moslo en acci\u00f3n.<\/p>\n<h3>Empezando<\/h3>\n<p>Como estamos hablando de los est\u00e1ndares de codificaci\u00f3n de Laravel, debe tener una configuraci\u00f3n de proyecto de Laravel. Si no lo tiene, inst\u00e1lelo con el comando:<\/p>\n<pre><code>composer create-project --prefer-dist laravel\/laravel laravel-dev<\/code><\/pre>\n<p>Aqu\u00ed &#8216;laravel-dev&#8217; es el nombre de su proyecto. Abra la terminal en el directorio ra\u00edz de su proyecto e inicialice el git.<\/p>\n<pre><code>git init<\/code><\/pre>\n<p>Es obligatorio tener Git en tu proyecto para poder aprovechar GrumPHP. Aqu\u00ed es donde funciona. Cuando instalamos GrumPHP, crea un gancho dentro de la <code>.git<\/code>carpeta y luego vigila cada confirmaci\u00f3n.<\/p>\n<p>Ahora, agregue y confirme sus archivos actuales en el git usando los comandos a continuaci\u00f3n uno por uno.<\/p>\n<pre><code>git add -A<\/code><\/pre>\n<pre><code>git commit -m 'initial commit'<\/code><\/pre>\n<h3>Mejorar el est\u00e1ndar de codificaci\u00f3n Laravel usando GrumPHP<\/h3>\n<p>Una vez que tengamos la configuraci\u00f3n de git en nuestro proyecto Laravel, estamos listos para instalar la biblioteca GrumPHP. Para instalarlo, ejecute el siguiente comando:<\/p>\n<pre><code>composer require --dev phpro\/grumphp<\/code><\/pre>\n<p>Una vez que el paquete est\u00e9 instalado, deber\u00eda ver el siguiente mensaje en la terminal:<\/p>\n<p>\u00a1Cuidado! \u00a1GrumPHP est\u00e1 olfateando tus confirmaciones!<\/p>\n<p>Significa que el paquete se instal\u00f3 correctamente. A continuaci\u00f3n, abra el <code>grumphp.yml<\/code>archivo y agregue el siguiente c\u00f3digo en \u00e9l.<\/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>En el c\u00f3digo anterior, la parte importante es la l\u00ednea <code>standard: PSR2<\/code>. Aqu\u00ed, le estamos diciendo a GrumPHP que verifique las convenciones de codificaci\u00f3n de PSR2 con los archivos que se van a confirmar. Usamos PSR2 aqu\u00ed porque Laravel sigue los est\u00e1ndares de codificaci\u00f3n de PSR2. Despu\u00e9s de esto, GrumPHP realizar\u00eda su tarea y nos informar\u00eda sobre el error en una consola si lo encontrara.<\/p>\n<p>Si no ha instalado la biblioteca est\u00e1ndar de codificaci\u00f3n, ejecute el siguiente comando para instalarla:<\/p>\n<pre><code>composer require \"squizlabs\/php_codesniffer=*\"<\/code><\/pre>\n<p>Esta biblioteca tiene est\u00e1ndares de codificaci\u00f3n PSR2 incluidos en su n\u00facleo. Por lo tanto, GrumPHP verificar\u00e1 su c\u00f3digo de Laravel con el PSR2 y le sugerir\u00e1 cambios si no est\u00e1 siguiendo los est\u00e1ndares de PSR2.<\/p>\n<p>Digamos que tenemos un <code>ImageController.php<\/code>archivo en nuestro proyecto y tenemos el siguiente c\u00f3digo en \u00e9l.<\/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>A continuaci\u00f3n, intente confirmar el c\u00f3digo anterior y deber\u00eda ver un resultado como el siguiente:<\/p>\n<p>Proporciona el error de codificaci\u00f3n en detalles junto con el n\u00famero de l\u00ednea y la descripci\u00f3n. Tambi\u00e9n puede notar la l\u00ednea:<\/p>\n<p>PHPCBF PUEDE ARREGLAR LAS 2 VIOLACIONES MARCADAS DEL SNIFF AUTOM\u00c1TICAMENTE<\/p>\n<h3>C\u00f3mo utilizar el comando PHPCBF<\/h3>\n<p>Al ejecutar un comando PHPCBF, podemos corregir algunos errores autom\u00e1ticamente. Dir\u00edgete al directorio &#8216;vendor \/ bin&#8217; desde la terminal y ejecuta el siguiente comando para corregir los errores usando PHPCBF.<\/p>\n<pre><code>PHPCBF --standard=PSR2 PATH_TO_YOUR_CONTROLLER<\/code><\/pre>\n<p>Reemplace el marcador de posici\u00f3n con los valores reales. Probablemente, si est\u00e1 ejecutando este comando en Git bash, obtendr\u00e1 el error &#8216;bash: phpcbf: command not found&#8217;. En ese caso, ejecute este comando en el s\u00edmbolo del sistema de Windows. En nuestro caso, vemos la siguiente salida en el terminal.<\/p>\n<p>Tenga en cuenta que PHPCBH no resuelve todos los errores. A veces tambi\u00e9n es necesario resolver el error manualmente. Ahora, cuando intente confirmar el c\u00f3digo, deber\u00eda obtener el mensaje de \u00e9xito y el c\u00f3digo tambi\u00e9n se comprometi\u00f3.<\/p>\n<h3>Pensamientos finales<\/h3>\n<p>En este tutorial, hemos discutido c\u00f3mo mejorar los est\u00e1ndares de codificaci\u00f3n de Laravel usando GrumPHP. Pero no se limita solo a Laravel. Tambi\u00e9n puede utilizar esta biblioteca en sus otros CMS, Frameworks. Estamos usando la biblioteca GrumPHP para nuestros proyectos principales de Laravel, WordPress y PHP. Realmente nos ayuda a mantener nuestro estilo de codificaci\u00f3n de manera consistente.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/php_codesniffer-una-biblioteca-para-mejorar-sus-estandares-de-codificacion-php\/\" title=\"PHP_CodeSniffer: una biblioteca para mejorar sus est\u00e1ndares de codificaci\u00f3n PHP\">PHP_CodeSniffer: una biblioteca para mejorar sus est\u00e1ndares de codificaci\u00f3n PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/una-guia-sobre-como-mejorar-los-estandares-de-codificacion-de-wordpress\/\" title=\"Una gu\u00eda sobre c\u00f3mo mejorar los est\u00e1ndares de codificaci\u00f3n de WordPress\">Una gu\u00eda sobre c\u00f3mo mejorar los est\u00e1ndares de codificaci\u00f3n de WordPress<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <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 es una biblioteca que nos ayuda a mejorar los est\u00e1ndares de codificaci\u00f3n de Laravel. Simplemente verifica cada confirmaci\u00f3n de Git y encuentra cualquier error y luego falla la confirmaci\u00f3n.<\/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":[495],"tags":[849],"class_list":["post-27656","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27656","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=27656"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27656\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/20640"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=27656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=27656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=27656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}