Back-End

16 fev, 2018

Configurando SonarQube e PhpStorm

Publicidade

Padrão de projeto de software

Caros leitores, neste artigo falarei um pouco sobre “padrões de projetos”. Como se trata de um assunto bem extenso, não cabe a este artigo explorar tudo. Este artigo é destinado a quem esta iniciando no mundo da programação ou que já tem certa experiência e quer garantir a qualidade dos softwares que irá desenvolver.

Um Padrão de Projeto não se trata de um projeto finalizado que pode ser diretamente transformado em código fonte ou de máquina, ele é uma descrição ou modelo de como resolver um problema que pode ser usado em muitas situações diferentes.

Dessa maneira, podemos dizer que Padrões são as “melhores práticas” que o programador pode usar para resolver problemas comuns quando se projeta uma aplicação ou sistema.

Padrões de projeto orientados a objeto normalmente mostram relacionamentos e interações entre classes ou objetos, sem especificar as classes ou objetos da aplicação final que estão envolvidas.

Esses padrões tornam mais fácil reutilizar soluções e arquiteturas bem sucedidas para construir softwares orientados a objetos de forma flexível e fácil de manter. O uso desses padrões podem reduzir a complexidade do processo de projetar software. Além disso, o software orientado a objetos bem projetados possibilita ao projetista e engenheiros de software reutilizar e empregar componentes preexistentes em sistema futuros.

Baseando na premissa da orientação de objeto e de boas práticas de programação, foi desenvolvida uma plataforma que se baseia em qualidade de código tendo implícito alguns padrões de projeto que facilitam o desenvolvimento e o bom entendimento do código. Essa plataforma tem inúmeras configurações de métricas para que tenhamos liberdade em configurar de acordo com o nossa arquitetura escolhida. Esta ferramenta chama-se Sonarqube ou somente Sonar. No próximo tópico irei explicar mais sobre esta fantástica ferramenta.

SonarQube

O SonarQube, anteriormente conhecido apenas como sonar, é uma ferramenta ou plataforma de código aberto para a inspeção contínua da qualidade do código que permite realizar revisões automáticas com análise estática de código para detectar erros, vulnerabilidades de segurança e garantir padrões de projetos que a própria ferramenta nos indica.

Padrões que podem ser configurados na própria ferramenta de acordo com a necessidade do projeto.
Ele oferece relatórios sobre códigos duplicado, padrões de codificação, testes unitários, cobertura de código, entre outros.

O SonarQube pode gravar histórico de métricas e fornecer gráficos de evolução. O maior recurso desta ferramenta é que ele fornece análise e integração totalmente automatizada com Maven, Ant, Gradle, MSBuild e ferramenta de integração contínua, como: Jenkins, Hudson, entre outras.

SonarQube tem suporte à várias linguagens e se integra aos mais diversos ambientes de desenvolvimento.

Exemplo de linguagens:

É isso amigos leitores, agora que já falamos um pouco sobre Padrões de Projetos e da ferramenta SonarQube, vamos colocar a mão na massa e configura-la em nosso projeto.

Configurando Sonarqube e PHPStorm

Instalando o SonarQube

Faça o download do SonarQube:

Extraia o arquivo “sonarqube-5.3.zip” no diretório;

Faça o download do Sonar-scanner:

Extraia o arquivo “sonar-sanner-2.6.1.zip” no diretório desejado;

Faça o download do Plug-in para PHP:

Mova o Plug-in para o diretório “sonarqube-5.3\extensions\plugins”

Executando o Sonarube

1. Abra o ( CMD ) e digite o seguinte comando no diretório “sonarcube-5.3” extraído:

a. D:\htdocs\sonarqube-5.3\bin\windows-x86-64\StartSonar.bat

2. Nesse ponto o sonar já está rodando em sua máquina. Veja o exemplo na imagem a seguir:

3. Acesse a URL http://localhost:9000 para visualizar a interface web, conforme imagem de exemplo:

Configurando seu Projeto

1. Crie o arquivo “sonar-project.properties” na raiz do seu projeto com o seguinte conteúdo:

# Required metadata

sonar.projectKey=sga

sonar.projectName=Sga

sonar.projectVersion=1.0

# Comma-separated paths to directories with sources(required)

sonar.sources=./app

# Language

sonar.language=php

# To deactivate features related to unit tests execution and coverage

sonar.dynamicAnalysis=false

# Encoding of the source files

sonar.sourceEncoding=UTF-8

sonar.exclusions=vendor/*

Observação: Substitua a palavra “Projeto” pelo nome de seu projeto.

2. Execute o comando “<path>\sonar-scanner-2.6.1\bin\sonar-scanner” no diretório de seu projeto.

3. Exemplo de saída após análise do código:

4. Para visualizar o resultado, acesse http://locahost:9000.

Configurando o PHPStorm

1. Acesse as configurações do PhpStorm em File > Settings;

2. Digite plugin, clique em “Browse Repositories” e digite “sonar”, clique em instalar “SonarQube Community Plugin”;

 

3. Reinicie o phpstorm após a instalação;

4. Volte nas configurações do PHPStorm e digite sonarqube, clique em “Add”;

5. Digite as informações a seguir:

Name: local
Host url: http://localhost:9000
User: admin
Password: admin

6. Clique no botão “+” e depois em “Donwload resources”, selecione o projeto, meu caso “SGA”, clique em “OK” e em “OK” novamente.

Com essas configurações aplicadas, o PHPStorm já encontra-se configurado com o SonarQube.

Inspecionando código com Sonarqube no PHPStorm

1. Para testar, clique em algum arquivo com o botão direito do mouse, vá até “Inspect Code” e clique em “OK”.

2. Após a execução, o PHPStorm deve retornar o resultado da inspeção conforme a imagem abaixo:

Fontes