{"id":231564,"date":"2023-01-03T18:08:00","date_gmt":"2023-01-03T15:08:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231564"},"modified":"2023-01-03T18:08:54","modified_gmt":"2023-01-03T15:08:54","slug":"configuracion-de-php-codesniffer-por-proyecto","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/configuracion-de-php-codesniffer-por-proyecto\/","title":{"rendered":"Configuraci\u00f3n de PHP CodeSniffer por proyecto"},"content":{"rendered":"\n<p>Hace unos a\u00f1os, escrib\u00ed una publicaci\u00f3n sobre c\u00f3mo <a href=\"https:\/\/tommcfarlin.com\/php-codesniffer-in-visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">configurar PHP CodeSniffer en Visual Studio Code<\/a> (y tambi\u00e9n lo actualic\u00e9 recientemente).<\/p>\n<p>Pero han pasado cuatro a\u00f1os desde que se escribi\u00f3 originalmente esa publicaci\u00f3n y, en ese tiempo, muchas cosas pueden cambiar en t\u00e9rminos de c\u00f3mo escribimos c\u00f3digo.<\/p>\n<p>Cuatro a\u00f1os es aproximadamente una era de Internet, \u00bfno es as\u00ed?<\/p>\n<p>De todos modos, los puntos b\u00e1sicos de ese art\u00edculo siguen vigentes, pero si est\u00e1 trabajando en una variedad de proyectos y algunos de ellos requieren diferentes configuraciones, configuraciones y est\u00e1ndares, entonces la forma en que instala y configura PHP CodeSniffer puede ser diferente a c\u00f3mo lo configura a nivel de sistema.<\/p>\n<p>Entonces, si est\u00e1 en esa posici\u00f3n, as\u00ed es como puede configurar PHP CodeSniffer por proyecto usando Visual Studio Code.<\/p>\n<h2>PHP CodeSniffer por proyecto<\/h2>\n<p>Este art\u00edculo hace algunas suposiciones:<\/p>\n<ul>\n<li>Est\u00e1s familiarizado con <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> ,<\/li>\n<li>Sabes c\u00f3mo manejar espacios de <a href=\"https:\/\/code.visualstudio.com\/docs\/getstarted\/settings\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">trabajo<\/a> en c\u00f3digo,<\/li>\n<li>Est\u00e1s familiarizado con <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a> (al menos a nivel global),<\/li>\n<li>Y sabes c\u00f3mo trabajar con <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ikappas.phpcs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">extensiones<\/a> de c\u00f3digo .<\/li>\n<\/ul>\n<p>Si no est\u00e1 seguro acerca de alguno de estos, revise <a href=\"https:\/\/tommcfarlin.com\/php-codesniffer-in-visual-studio-code\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este art\u00edculo<\/a> y luego regrese. Te guiar\u00e9 por el resto.<\/p>\n<h3>1 Instale PHP CodeSniffer localmente<\/h3>\n<p>Debido a que diferentes proyectos pueden requerir un conjunto diferente de est\u00e1ndares, encuentro \u00fatil mantener una copia <code>composer.json<\/code>y, naturalmente, <code>composer.lock<\/code>por proyecto.<\/p>\n<p>Esto significa que en la ra\u00edz de mi proyecto, tengo un <code>composer.json<\/code>archivo con todo lo que necesito para un proyecto determinado. En el caso de este art\u00edculo, necesito una copia de PHP CodeSniffer.<\/p>\n<p>Para instalar PHP CodeSniffer y la \u00faltima versi\u00f3n de los est\u00e1ndares de codificaci\u00f3n de WordPress a nivel de proyecto, crear\u00e9 el archivo anterior en la ra\u00edz de mi proyecto y luego incluir\u00e9 lo siguiente:<\/p>\n<pre><code>{\n    \"require\": {\n        \"wp-coding-standards\/wpcs\": \"2.3.0\",\n        \"squizlabs\/php_codesniffer\": \"3.*\"\n    }\n}\n<\/code><\/pre>\n<p>En la mayor\u00eda de los casos, este archivo ser\u00e1 mucho m\u00e1s complejo, pero obtendr\u00e1 una idea general de lo que debe incluir.<\/p>\n<p>A continuaci\u00f3n, ejecute <code>composer install<\/code>y esto crear\u00e1 un <code>vendor<\/code>directorio en su proyecto que incluir\u00e1 tanto los est\u00e1ndares de codificaci\u00f3n de WordPress como el CodeSniffer de PHP.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158884-61e6e841e56c6.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158884-61e6e841e56c6.png\" alt=\"Configuraci\u00f3n de PHP CodeSniffer por proyecto\"><\/a><\/p>\n<h3>2 Configurar enlaces simb\u00f3licos a los binarios locales<\/h3>\n<p>En este punto, puede resultarle \u00fatil crear un enlace simb\u00f3lico a los archivos binarios para PHPCS y PHPCBF para que no entre en conflicto con lo que est\u00e9 ejecutando a nivel global.<\/p>\n<p>Para ello, en la ra\u00edz del proyecto puedes introducir en tu terminal lo siguiente:<\/p>\n<pre><code>$ ln -s \/vendor\/bin\/phpcs phpcs\n$ ln -s \/vendor\/bin\/phpcbf phpcbf<\/code><\/pre>\n<p>Esto le permitir\u00e1 ejecutar los binarios desde su terminal. Para probar est\u00e1 fuera, intente el siguiente comando:<\/p>\n<pre><code>$ .\/phpcs --version<\/code><\/pre>\n<p>Y deber\u00edas ver un resultado como este:<\/p>\n<pre><code>PHP_CodeSniffer version 3.5.5 (stable) by Squiz (http:\/\/www.squiz.net)<\/code><\/pre>\n<p>Si es as\u00ed, tienes todo configurado correctamente.<\/p>\n<h3>3 Instale la extensi\u00f3n PHP CodeSniffer<\/h3>\n<p>El siguiente paso, posiblemente el m\u00e1s f\u00e1cil, es configurar la extensi\u00f3n PHP CodeSniffer en Code. Tiene varias opciones, pero he tenido una buena experiencia con <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ikappas.phpcs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">esta extensi\u00f3n en particular<\/a>.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158884-61e6e847469e5.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-158884-61e6e847469e5.png\" alt=\"Configuraci\u00f3n de PHP CodeSniffer por proyecto\"><\/a><\/p>\n<p>Una vez que est\u00e9 instalado y haya recargado su IDE, deber\u00eda estar listo para instalar y configurar PHP CodeSniffer por proyecto.<\/p>\n<h3>4 Configure su espacio de trabajo<\/h3>\n<p>En Code, lo siguiente que querr\u00e1 hacer es configurar PHP Code Sniffer para su proyecto espec\u00edfico. Para hacer esto, es m\u00e1s f\u00e1cil configurar un espacio de trabajo para su proyecto.<\/p>\n<p>Puede hacer esto haciendo clic en el men\u00fa <strong>Archivo<\/strong> y luego haciendo clic en el elemento de men\u00fa <strong>Guardar espacio de trabajo como\u2026 .<\/strong> Esto crear\u00e1 un <code>project.code-workspace<\/code>archivo dondequiera que opte por incluirlo.<\/p>\n<p>Si est\u00e1 controlando la versi\u00f3n de su proyecto, le recomiendo mantenerlo en la ra\u00edz de su proyecto para que pueda mantenerlo en control de versi\u00f3n. Luego, si abre ese archivo, notar\u00e1 que es JSON e incluye una <code>settings<\/code>directiva. Dentro de esa directiva, agregue la siguiente configuraci\u00f3n:<\/p>\n<pre><code>project.code-workspace<\/code><\/pre>\n<p>Tenga en cuenta que le estamos diciendo expl\u00edcitamente a la extensi\u00f3n d\u00f3nde est\u00e1 la ruta del ejecutable, es decir, en el <code>vendor<\/code>directorio relativo al <code>workspace<\/code>archivo.<\/p>\n<p>Una vez que haya hecho eso, deber\u00eda poder comenzar a escribir c\u00f3digo y hacer que huela activamente su c\u00f3digo mientras trabaja.<\/p>\n<h2>\u00bfQuieren m\u00e1s?<\/h2>\n<p>Si est\u00e1 interesado en una detecci\u00f3n y soluci\u00f3n de olores y problemas de c\u00f3digo a\u00fan m\u00e1s agresivos, le recomiendo que <a href=\"https:\/\/wordpress.mediadoma.com\/es\/compositor-para-wordpress-parte-2\/\" title=\"consulte el art\u00edculo sobre GrumPHP\">consulte el art\u00edculo sobre GrumPHP<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As\u00ed es como puede comenzar a configurar PHP CodeSniffer por proyecto utilizando Composer, Visual Studio Code y varios est\u00e1ndares de codificaci\u00f3n.<\/p>\n","protected":false},"author":1,"featured_media":236922,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[892,716,831,800,840,790,861],"tags":[1172],"class_list":["post-231564","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-guia-para-principiantes","category-php-2","category-tutoriales","category-visual-studio-code-2","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231564","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=231564"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231564\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/236922"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=231564"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=231564"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=231564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}