✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Escrevendo um código WordPress melhor: PHPStan

9

No post mais recente desta série (que é reconhecidamente há algum tempo), falei longamente sobre o Composer e seu arquivo de bloqueio.

Eu recomendo a leitura dos dois artigos anteriores porque o Composer eventualmente desempenhará um papel neste material que este e os próximos posts compartilharão. Mas se você optar por não alcançá-los (ou já estiver familiarizado com o Composer), a essência dos posts anteriores é, respectivamente, a seguinte:

Eu não recomendo verificar o diretório do fornecedor em seu repositório. Isso pode se tornar um diretório enorme mais tarde, e pode minar todo o propósito do Composer.

Compositor

O objetivo é garantir que todos estejam executando a mesma versão das dependências do projeto – nem versões mais antigas, nem versões mais recentes – mas a mesma versão.

O arquivo de bloqueio do compositor

Com isso dito, existem inúmeras dependências ou pacotes que podemos instalar que nos ajudam a ter certeza de que estamos escrevendo o código da mais alta qualidade possível.

Claro, alguns deles podem estar na forma de algo como padrões de codificação, mas essas são realmente mais regras do que elementos de escrita de código de alta qualidade (embora eu não ache que devam ser deixados de fora da discussão – apenas deixados de fora neste momento 🙃).

De volta às ferramentas em questão: Quais são algumas ferramentas que ajudam a escrever código WordPress de alta qualidade? Vou compartilhar alguns dos meus favoritos e falarei sobre como podemos executá-los em uma base de código.

Primeiro, vamos dar uma olhada na análise estática com PHPStan.

Melhor código WordPress com PHPStan

O que é análise estática, afinal?

Primeiro, algumas palavras sobre análise estática. Ou seja, o que é? É um bocado, por um lado:

A análise de código estático (também conhecida como análise de código-fonte) geralmente é realizada como parte de uma revisão de código (também conhecida como teste de caixa branca) e é realizada na fase de implementação de um ciclo de vida de desenvolvimento de segurança (SDL).

Análise de código estático geralmente se refere à execução de ferramentas de análise de código estático que tentam destacar possíveis vulnerabilidades no código-fonte ‘estático’ (não em execução) usando técnicas como análise de contaminação e análise de fluxo de dados.

Análise de código estático via OWASP

Pense desta forma: é uma maneira de analisar um programa em busca de possíveis erros que você pode não ver ao trabalhar na base de código.

Ou seja, existem problemas, bugs, problemas de segurança, que podem estar presentes, mas você não pode detectar por vários motivos (o mínimo é que você está muito próximo do código).

Com o tempo, porém, a comunidade de desenvolvimento aprendeu maneiras de analisar o código, gerar conjuntos de regras e criar ferramentas para ajudar a encontrar exatamente todos os itens acima.

Análise estática do código centrado no WordPress

E é aqui que o PHPStan entra em cena.

Escrevendo um código WordPress melhor: PHPStan

Como mencionado, o objetivo do pacote é identificar erros ou bugs que existem em seu código antes que seu código seja usado por alguém que não seja desenvolvedores, destacá-los e dar a você a oportunidade de corrigi-los.

Como ferramentas como essa examinam uma base de código (em vez de executar o código), nem sempre é possível obter uma imagem clara. Isso significa que podemos obter falsos positivos.

Mais sobre isso em um momento embora.

Se você estiver interessado em começar a executar o PHPStan em sua base de código, é fácil. Depois de instalá-lo, lembre-se de configurá-lo para que não olhe no vendordiretório ou, digamos, no núcleo do WordPress.

Em vez disso, faça com que ele examine seu código.

Instalando o PHPStan

Primeiro, em seu composer.jsonarquivo, adicione a seguinte linha na require-devseção:

"phpstan/phpstan": "^0.11.12"

Em seguida, execute composer updateno seu terminal.

Uma vez instalado, você pode executá-lo em um arquivo individual, um diretório ou um conjunto de diretórios. Se você leu meus posts anteriores sobre organização de código, sabe que sou fã de manter a maior parte do código-fonte do projeto srcpara que você possa executar algo assim:

$ vendor/bin/phpstan analyse src

Isso gerará saída com base no que o utilitário encontrar.

Lembra mais cedo quando eu disse que pode encontrar coisas como falsos positivos? Aqui está uma análise mais detalhada do que você pode ver:

  • Argumentos extras passados ​​para funções (por exemplo, função requer dois argumentos, o código passa três)
  • Argumentos extras passados ​​para funções print/sprintf (por exemplo, string de formato contém um espaço reservado, o código passa dois valores para substituir)
  • Erros óbvios em código morto
  • Comportamento mágico que precisa ser definido.

Todas as opções acima diretamente do repositório.

É aqui que os Níveis de Regra podem fazer toda a diferença, embora possa exigir um pouco de ajustes para chegar a um nível adequado para sua equipe ou seu projeto.

E quanto à análise para WordPress?

Viktor Szépe compartilhou este recurso comigo (algo de sua autoria, na verdade) e acho que é algo relevante e útil. A ideia do pacote é simples:

Ele resolve todos os problemas que tive durante a análise de código para WordPress.

Nada mal, certo?

Analise seu código

Independentemente do seu projeto, sua organização de código ou em que nível você executa esse utilitário específico, o objetivo é sempre melhorar o nível de qualidade do código do WordPress que estamos escrevendo.

Instalar isso como um pacote do Composer e executá-lo em seu srcdiretório é um passo na direção certa.

Como dito anteriormente, compartilharei algumas outras ferramentas e compartilharei como executá-las em uma base de código antes de confirmar o código em um repositório.

Observação

Se você tiver um problema ao tentar configurar o pacote, Dave Mackey me contatou com um problema semelhante e sua solução.

Fonte de gravação: tommcfarlin.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação