Olá pessoal tudo bem?

Anteriormente fiz um post para demonstrar o uso do PHPCodeSniffer, uma ferramenta muito útil para verificar possíveis erros em nossos códigos, e com isso nos auxiliar a melhora-los. Pois bem hoje vou lhes mostrar outra ferramenta PHP Coding Standards Fixer ou mais conhecido como PHP-CS-Fixer (repositório Github).

Com esta ferramenta poderemos realizar o processo de correção automática para as violações por exemplo da PSR-2, isso mesmo de forma automática!!!

E como isso funciona? Pois bem, Show Me The Code!!!

Instalação

Dispomos de diversas formas para realizar sua instalação, e para este post irei utilizar seu arquivo .phar.

Para obtermos, podemos baixar diretamente do link.

Ou podemos instalar de forma Global:

Manual – wget

1
$ wget http://get.sensiolabs.org/php-cs-fixer.phar -O php-cs-fixer

Manual – CURL

1
$ curl http://get.sensiolabs.org/php-cs-fixer.phar -o php-cs-fixer

Depois devemos conceder as seguintes permissões:

1
2
$ sudo chmod a+x php-cs-fixer
$ sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer

Para executar basta realizar o seguinte comando:

1
php-cs-fixer

Global – composer

1
$ ./composer.phar global require fabpot/php-cs-fixer

Em seguida, verifique se você executar ~/.composer/fornecedor/bin no seu PATH, e você está pronto para ir:

1
exportação PATH = " $ PATH : $ HOME /.composer/vendor/bin "

Global – homebrew

1
brew install homebrew/php/php-cs-fixer

Execução do php-cs.fixer.phar

Tomemos como base o seguinte código:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php

namespace Diego\Generator;

class PDF {

  /**
   * Title for document PDF.
   * @var string
   */
  protected $title;

  /**
   * Paper Orientation
   * @example  portrait
   * @var string
   */
  protected $paperOrientation;

  /**
   * Content text of document PDF
   * @var string
   */
  protected $text;

  /**
   * Set data document
   * @param array $data array for data of document PDF
   */
  public function setData($data)
  {
    foreach ($data as $key => $value) 
    {
      $this->$key = $value;
    }
  }

  /**
   * Get data document
   * @param  string $key Referentes the properties of document.
   * @return mixed
   */
  public function getData($key)
  {
      return $this->$key;
  }

  /**
   * The document PDF
   * @return Diego\Generator\PDF\PDF;
   */
  public function createPDF()
  {
    // code for generate pdf...
  }
}

Não preciso nem descrever as graves agreções que o código acima inflige nas recomendações das PSR’s, métodos descritos sem formatação, excesso de espaços e total negligencia a endentação de código.

Agora devemos acessar o diretório raiz do projeto, que em nosso caso é onde encontra-se nossa classe que gostaríamos de corrigi-la.

Devemos executar o seguinte comando no terminal:

1
php php-cs-fixer fix pdf.php

Vamos agora acessar novamente nossa classe para podemor avaliar as mudanças ocorridas.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
namespace Diego\Generator;

class PDF
{
  /**
   * Title for document PDF.
   * @var string
   */
  protected $title;

  /**
   * Paper Orientation
   * @example  portrait
   * @var string
   */
  protected $paperOrientation;

  /**
   * Content text of document PDF
   * @var string
   */
  protected $text;

  /**
   * Set data document
   * @param array $data array for data of document PDF
   */
  public function setData($data)
  {
    foreach ($data as $key => $value) {
      $this->$key = $value;
    }
  }

  /**
   * Get data document
   * @param  string $key Referentes the properties of document.
   * @return mixed
   */
  public function getData($key)
  {
    return $this->$key;
  }

  /**
   * The document PDF
   * @return Diego\Generator\PDF\PDF;
   */
  public function createPDF()
  {
    // code for generate pdf...
  }
}

E pronto, temos nossa classe corrigida conforme desejamos, fácil não?!

O que gostaria de reforçar aqui é o seguinte, para quem estiver começando a usar o PHP recomento que use o PHPCodeSnifer, para que assim possa analisar o que está em desacordo em seu código e posteriormente utilizar o PHP-CS-Fixer. E reforço a importância de que esta ferramenta nos auxilia no processo e nunca deve ser usada para corrigir de forma descontrolada o código, em outras palavras, não é desculpa para escrever código de má qualidade!!!

O PHP-CS-FIXER tem uma gama de opções bem extensa, onde vale muito a pena que deem uma olhada para poder desfrutar de maior capacidade da ferramenta.

Alguns Editores e IDE’s dispõem de ferramentas para auxiliar o uso do PPHCS.

Bom por hoje é só pessoal, espero que tenham gostado e que o post tenha acrescentado algo em seu dia, até a próxima!