{"id":26651,"date":"2021-04-28T17:03:00","date_gmt":"2021-04-28T14:03:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26651"},"modified":"2021-10-18T04:20:53","modified_gmt":"2021-10-18T01:20:53","slug":"php_codesniffer-uma-biblioteca-para-melhorar-seus-padroes-de-codificacao-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/php_codesniffer-uma-biblioteca-para-melhorar-seus-padroes-de-codificacao-php\/","title":{"rendered":"PHP_CodeSniffer &#8211; uma biblioteca para melhorar seus padr\u00f5es de codifica\u00e7\u00e3o PHP"},"content":{"rendered":"<p>Voc\u00ea quer melhorar seus padr\u00f5es de codifica\u00e7\u00e3o PHP? Obviamente sim. N\u00e3o importa se voc\u00ea \u00e9 um desenvolvedor PHP novato ou experiente, todos desejam melhorar seus padr\u00f5es de codifica\u00e7\u00e3o.<\/p>\n<p>Mas como?<\/p>\n<p>Bem, existem v\u00e1rios recursos dispon\u00edveis na Internet que voc\u00ea pode ler e come\u00e7ar a implementar.<\/p>\n<p>Existe mais uma solu\u00e7\u00e3o que n\u00e3o requer leitura sobre codifica\u00e7\u00e3o padr\u00e3o. Em vez disso, ele fornece sugest\u00f5es para melhorar o tempo de execu\u00e7\u00e3o dos padr\u00f5es examinando o arquivo PHP. Dessa forma \u00e9 melhor, pois voc\u00ea obter\u00e1 uma sugest\u00e3o clara junto com o n\u00famero da linha.<\/p>\n<h3>Introdu\u00e7\u00e3o ao PHP_CodeSniffer<\/h3>\n<p>Como o nome sugere, <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP_CodeSniffer<\/a> cheira o c\u00f3digo em seus arquivos ou pastas. Em qualquer lugar, ele fareja o c\u00f3digo incorreto e informa onde est\u00e1 o c\u00f3digo incorreto e quais etapas devem ser executadas para corrigi-lo. PHP_CodeSniffer atua como seu verificador de c\u00f3digo PHP.<\/p>\n<p>\u00c9 uma biblioteca altamente recomendada para um programador de PHP. Ao trabalhar em um projeto PHP, voc\u00ea n\u00e3o deve entregar seu c\u00f3digo ao cliente final at\u00e9 terminar com os padr\u00f5es de codifica\u00e7\u00e3o PHP sugeridos pelo PHP_CodeSniffer.<\/p>\n<p>Afinal, o programador PHP deve entregar um c\u00f3digo melhor e PHP_CodeSniffer ajuda voc\u00ea a codificar melhor.<\/p>\n<h3>Instale PHP_CodeSniffer usando o Composer<\/h3>\n<p><a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> \u00e9 um gerenciador de depend\u00eancias para PHP. Ele permite que voc\u00ea instale \/ atualize a biblioteca necess\u00e1ria para o seu projeto.<\/p>\n<p>Voc\u00ea pode instalar PHP_CodeSniffer no diret\u00f3rio raiz do seu projeto. Por\u00e9m, eu recomendo que voc\u00ea crie uma pasta &#8216;php_codesniffer&#8217; no diret\u00f3rio raiz e instale a biblioteca dentro desta pasta.<\/p>\n<p>Para instalar o PHP_CodeSniffer usando o composer, abra o prompt de comando no diret\u00f3rio &#8216;php_codesniffer&#8217; e execute o comando abaixo.<\/p>\n<p><code>composer require \"squizlabs\/php_codesniffer=*\"<\/code><\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" alt=\"PHP_CodeSniffer - uma biblioteca para melhorar seus padr\u00f5es de codifica\u00e7\u00e3o PHP\" ><\/a><\/p>\n<h3>Vamos verificar nossos padr\u00f5es de codifica\u00e7\u00e3o PHP<\/h3>\n<p>Em seguida, v\u00e1 para o <code>php_codesniffer\/vendor\/bin<\/code>diret\u00f3rio a partir do prompt de comando. A partir dessa pasta bin, verificaremos nossos padr\u00f5es de codifica\u00e7\u00e3o PHP em rela\u00e7\u00e3o ao PHP_CodeSniffer.<\/p>\n<p>Por exemplo, vamos supor que temos um arquivo chamado index.php em seu projeto. Meu arquivo index.php cont\u00e9m o c\u00f3digo abaixo.<\/p>\n<pre><code>&lt;?php\nrequire_once (\"vendor\/autoload.php\");\nrequire_once (\"config.php\");\n\u00a0\nTinifysetKey(TINIFY_KEY);\n\u00a0\n$source = TinifyfromFile(\"large.jpg\");\n$resized = $source-&gt;resize(\n\u00a0\u00a0\u00a0\u00a0array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"method\" =&gt; \"cover\",\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"width\" =&gt; 150,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"height\" =&gt; 100\n\u00a0\u00a0\u00a0\u00a0));\n$resized-&gt;toFile(\"thumbnail1.jpg\");\n\u00a0\necho \"Image resized.\";\n\u00a0\n$bool = true;\n?&gt;<\/code><\/pre>\n<p>Este c\u00f3digo \u00e9 usado para <a href=\"https:\/\/themewp.inform.click\/pt-pt\/redimensionar-imagem-em-php-usando-tinypng\/\" title=\"redimensionar a imagem em PHP usando a biblioteca TinyPNG\">redimensionar a imagem em PHP usando a biblioteca TinyPNG<\/a>. Nosso c\u00f3digo est\u00e1 funcionando bem e dando o resultado esperado. Mas, perdemos alguns padr\u00f5es de codifica\u00e7\u00e3o em nosso arquivo.<\/p>\n<p>Vamos descobrir qual padr\u00e3o est\u00e1 faltando no arquivo acima.<\/p>\n<p>Verificaremos este arquivo em rela\u00e7\u00e3o ao PHP_CodeSniffer executando o comando abaixo.<\/p>\n<p><code>phpcs --standard=PEAR \/path\/to\/your\/file<\/code><\/p>\n<p>Estamos trabalhando no Windows, portanto, em nosso caso, um comando seria o seguinte.<\/p>\n<p><code>phpcs --standard=PEAR D:wampwwwapitinypngindex.php<\/code><\/p>\n<p>Aqui, &#8216;\u2013standard = PEAR&#8217; significa que nosso arquivo verificar\u00e1 o padr\u00e3o definido pelo <a href=\"https:\/\/pear.php.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PEAR<\/a>.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" alt=\"PHP_CodeSniffer - uma biblioteca para melhorar seus padr\u00f5es de codifica\u00e7\u00e3o PHP\" ><\/a><\/p>\n<p>Depois de executar o comando acima, encontramos alguns erros sobre os padr\u00f5es de codifica\u00e7\u00e3o.<\/p>\n<h3>Corrija o c\u00f3digo usando diretrizes<\/h3>\n<p>Vamos dar um exemplo de erro.<\/p>\n<p>Segundo erro dizendo &#8216;require_once&#8217; \u00e9 uma instru\u00e7\u00e3o, n\u00e3o uma fun\u00e7\u00e3o: nenhum par\u00eantese \u00e9 necess\u00e1rio<\/p>\n<p>Por esse erro, ficamos sabendo do padr\u00e3o de inclus\u00e3o de arquivo externo.<\/p>\n<p>Nosso c\u00f3digo abaixo<\/p>\n<pre><code>require_once (\"vendor\/autoload.php\");\nrequire_once (\"config.php\");<\/code><\/pre>\n<p>deve substituir por<\/p>\n<pre><code>require_once \"vendor\/autoload.php\";\nrequire_once \"config.php\";<\/code><\/pre>\n<p>Este \u00e9 um exemplo de corre\u00e7\u00e3o de c\u00f3digo. No seu caso, voc\u00ea pode encontrar alguns outros erros. Voc\u00ea deve corrigi-lo seguindo as instru\u00e7\u00f5es que recebeu.<\/p>\n<p>A biblioteca PHP_CodeSniffer fornece um comando que corrige automaticamente as viola\u00e7\u00f5es do padr\u00e3o de codifica\u00e7\u00e3o. Lembre-se de que este comando n\u00e3o corrige todos os erros. Ele cuidar\u00e1 de alguns erros menores, como recuo, fechamento de par\u00eanteses, etc.<\/p>\n<p>Se voc\u00ea olhar a imagem acima, voc\u00ea notar\u00e1 que um total de 7 erros encontrados em nosso arquivo. Ap\u00f3s a lista de erros, veja a linha<\/p>\n<p>&#8216;PHPCBF&#8217; PODE CORRIGIR AS 6 VIOLA\u00c7\u00d5ES DE SNIFF MARCADAS AUTOMATICAMENTE<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" alt=\"PHP_CodeSniffer - uma biblioteca para melhorar seus padr\u00f5es de codifica\u00e7\u00e3o PHP\" ><\/a><\/p>\n<p>Primeiro erro que est\u00e1 relacionado \u00e0 falta de coment\u00e1rio de documento de arquivo, temos que cuidar desse coment\u00e1rio de documento. O comando &#8216;PHPCBF&#8217; n\u00e3o o corrigir\u00e1.<\/p>\n<p>Dito isso, vamos escrever o comando para ele.<\/p>\n<p><code>phpcbf --standard=PEAR D:wampwwwapitinypngindex.php<\/code><\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" alt=\"PHP_CodeSniffer - uma biblioteca para melhorar seus padr\u00f5es de codifica\u00e7\u00e3o PHP\" ><\/a><\/p>\n<p>Na captura de tela, voc\u00ea pode ver que corrigiu 6 erros e 1 restante. O erro restante est\u00e1 relacionado ao coment\u00e1rio do documento do arquivo.<\/p>\n<p>Portanto, adicionaremos o coment\u00e1rio do arquivo e nosso c\u00f3digo final ser\u00e1 o seguinte.<\/p>\n<pre><code>&lt;?php\n\/**\n\u00a0* This file will generate the resize version of an image\n\u00a0*\n\u00a0* PHP version 5.6.25\n\u00a0*\n\u00a0* @category Resize_Image\n\u00a0* @package\u00a0 TinyPNG\n\u00a0* @author\u00a0\u00a0 Sajid &lt;sajid@artisansweb.net&gt;\n\u00a0* @license\u00a0 http:\/\/www.php.net\/license\/3_01.txt\u00a0 PHP License 3.01\n\u00a0* @link\u00a0\u00a0\u00a0\u00a0 https:\/\/artisansweb.net\/resize-image-php-using-tinypng\n\u00a0*\/\nrequire_once \"vendor\/autoload.php\";\nrequire_once \"config.php\";\n\u00a0\nTinifysetKey(TINIFY_KEY);\n\u00a0\n$source = TinifyfromFile(\"large.jpg\");\n$resized = $source-&gt;resize(\n\u00a0\u00a0\u00a0\u00a0array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"method\" =&gt; \"cover\",\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"width\" =&gt; 150,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"height\" =&gt; 100\n\u00a0\u00a0\u00a0\u00a0)\n);\n$resized-&gt;toFile(\"thumbnail1.jpg\");\n\u00a0\necho \"Image resized.\";\n\u00a0\n$bool = true;\n?&gt;<\/code><\/pre>\n<p>Agora, se executarmos o script &#8216;phpcs&#8217;, n\u00e3o obteremos nenhum erro de padr\u00e3o de codifica\u00e7\u00e3o do PHP.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" alt=\"PHP_CodeSniffer - uma biblioteca para melhorar seus padr\u00f5es de codifica\u00e7\u00e3o PHP\" ><\/a><\/p>\n<p><strong>Nota:<\/strong> PHP_CodeSniffer valida seus arquivos JS e CSS tamb\u00e9m.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quer melhorar seus padr\u00f5es de codifica\u00e7\u00e3o PHP? PHP_CodeSniffer \u00e9 uma biblioteca que ajuda voc\u00ea a melhorar os padr\u00f5es de codifica\u00e7\u00e3o. Neste artigo, estudamos<\/p>\n","protected":false},"author":1,"featured_media":21909,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[278],"tags":[848],"class_list":["post-26651","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/26651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=26651"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/26651\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=26651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=26651"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=26651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}