Seguindo padrões:
      Codificando
profissionalmente com
      PHP Sniffer
   Vinicius Warto Campos
  www.facebook.com/wartoca
Vinicius Warto Campos

○ Desenvolvedor de Software na
    empresa Ci&T, atuando
    exclusivamente no
    desenvolvimento de aplicações
    Web, utilizando PHP, Java e .Net.
○   Larga experiência em
    desenvolvimento de projetos PHP.
○   Atua há 5 anos com
    desenvolvimento em PHP.
○   Músico nas horas vagas
○   Video-game sempre é uma boa
    pedida
Agenda

○   Público Alvo
○   O que são standards?
○   Por que utilizar standards?
○   O que é PHP Sniffer?
○   Utilizando PHP Sniffer
○   Aplicações Práticas
○   Configurando o PHP Sniffer
○   Configurando sua IDE
Público Alvo

○ Ambiente
   ○ Arquiteto
   ○ Analista de Suporte

○ Modelagem de Sistemas
   ○ Arquiteto de Sistemas
   ○ Arquiteto de Software

○ Liderança Técnica
   ○ Líder Técnico
   ○ Líder de Desenvolvimento
Público Alvo

○ Implementação
  ○   Analista Programador
  ○   Programador
  ○   Desenvolvedor
  ○   Implementador
  ○   Webdesigner
  ○   Webdeveloper
O que são standards?

○ Convenção de código

○ Conjunto de boas práticas no momento
   de codificação

○ Visam validar um padrão de
   implementação, independentemente de
   qual parte de um código está sendo
   implementada
    ○ DAO
    ○ DTO
    ○ Controller
    ○ Generic Class
O que são standards?

○ Não definem Padrões de Projetos
   ○   Singleton
   ○   Factory
   ○   MVC
   ○   ORM
   ○   Active Record
   ○   Data Persistence

○ Não definem utilização de frameworks
   ○   Zend
   ○   Symfony
   ○   CakePHP
   ○   Code Igniter
O que são standards?

○ Definem:
  ○   Indentação do Código
  ○   Padrão de comentários
  ○   Padrão de documentação
  ○   Declarações
  ○   Statements
  ○   Convenções de nomenclatura
  ○   Práticas de programação
  ○   Princípios de programação
  ○   White spaces
  ○   Atribuição e comparação de valores
O que são standards?

○ Adicionalmente podem validar
   ○   Performance do código
   ○   Segurança do código
   ○   Delimitador de quebra de linha
   ○   Código duplicado
   ○   Sugestão de refatoração de código
Por que utilizar standards?

○ Garantir a qualidade do software

○ Garantir a legibilidade do código

○ Reduzir o custo da manutenção

○ Definir um código seguro

○ Definir um código confiável

○ Definir um código eficiente
Por que utilizar standards?

○ Definir a utilização de boas práticas

○ Evitar problemas de padronização de
   código em Code Review
Por que utilizar standards?
Por que utilizar standards?

○ Você colabora para projetos Open Source?

○ Você submete códigos para aprovação?

○ Sabia que esses códigos devem ser padronizados?

○ Drupal
   ○ Contribute to development
   ○ Standards, security and best practices
   ○ Coding standards
O que é PHP Sniffer?

○ É a ferramente sobre a qual você testará
   um Coding Standard em seu projeto

○ É um módulo da biblioteca PEAR, que
   possui um script que detecta violações de
   códigos que utilizam um Standard
   definido

○ Também detecta erros comuns de
   semântica

○ É necessário possui o módulo PEAR
   para instalá-lo e utilizá-lo
Utilizando PHP Sniffer

○ Para utilizar o PHP Code Sniffer, executamos o
    camando phpcs na tela do terminal

○   phpcs {lista de parâmetros}
○   phpcs --help
○   phpcs -i
○   phpcs /path/to/my/project/my-file.php
○   phpcs /path/to/my/project/
○   phpcs -n /path/to/my/project/
○   phpcs --standard=PEAR /path/to/my/project
○   phpcs --standard=/path/to/MyStandard
    /path/to/my/project/my-file.php
Utilizando PHP Sniffer
$ phpcs --help

Usage: phpcs [-nwlsapvi] [-d key[=value]]
    [--report=<report>] [--report-file=<reportfile>] [--report-<report>=<reportfile>] ...
    [--report-width=<reportWidth>] [--generator=<generator>] [--tab-width=<tabWidth>]
    [--severity=<severity>] [--error-severity=<severity>] [--warning-severity=<severity>]
    [--config-set key value] [--config-delete key] [--config-show]
    [--standard=<standard>] [--sniffs=<sniffs>] [--encoding=<encoding>]
    [--extensions=<extensions>] [--ignore=<patterns>] <file> ...
          -n        Do not print warnings (shortcut for --warning-severity=0)
          -w        Print both warnings and errors (on by default)
          -l       Local directory only, no recursion
          -s        Show sniff codes in all reports
          -a        Run interactively
          -p        Show progress of the run
         -v[v][v]   Print verbose output
          -i       Show a list of installed coding standards
         -d        Set the [key] php.ini value to [value] or [true] if value is omitted
          --help     Print this help message
Utilizando PHP Sniffer
$ phpcs -i

The installed coding standards are Zend, PEAR, PHPCS, Squiz and MySource




$ phpcs /path/to/my/project/my-file.php

FILE: /path/to/my/project/my-file.php
--------------------------------------------------------------------------------
FOUND 5 ERROR(S) AFFECTING 2 LINE(S)
--------------------------------------------------------------------------------
  2 | ERROR | Missing file doc comment
 20 | ERROR | PHP keywords must be lowercase; expected "false" but found "FALSE"
 47 | ERROR | Line not indented correctly; expected 4 spaces but found 1
 51 | ERROR | Missing function doc comment
 88 | ERROR | Line not indented correctly; expected 9 spaces but found 6
--------------------------------------------------------------------------------
Utilizando PHP Sniffer
$ phpcs /path/to/my/project/

FILE: /path/to/my/project/my-file.php
--------------------------------------------------------------------------------
FOUND 5 ERROR(S) AFFECTING 5 LINE(S)
--------------------------------------------------------------------------------
  2 | ERROR | Missing file doc comment
 20 | ERROR | PHP keywords must be lowercase; expected "false" but found "FALSE"
 47 | ERROR | Line not indented correctly; expected 4 spaces but found 1
 51 | ERROR | Missing function doc comment
 88 | ERROR | Line not indented correctly; expected 9 spaces but found 6
--------------------------------------------------------------------------------

FILE: /path/to/my/project/your-file.php
--------------------------------------------------------------------------------
FOUND 1 ERROR(S) AND 1 WARNING(S) AFFECTING 1 LINE(S)
--------------------------------------------------------------------------------
 21 | ERROR | PHP keywords must be lowercase; expected "false" but found
     |                | "FALSE"
 21 | WARNING | Equals sign not aligned with surrounding assignments
--------------------------------------------------------------------------------
Aplicações Práticas

○ IDE
   ○ Eclipse
   ○ Netbeans

○ Code Review

○ Continuous Integration Software
   ○ Hudson
   ○ Jenkins


○ Code Analysis Software
   ○ Sonar
Aplicações Práticas

○ Sugestão de processo "Build and Deploy"
   ○   Criar um projeto Hudson / Jenkins
   ○   Atualizar repositório (CVS / SVN / GIT)
   ○   Executar Sonar
   ○   Executar PHP Sniffer
   ○   Build
   ○   Deploy
Configurando o PHP Sniffer

○ Instalação do módulo PEAR

○ Habilitação do PEAR para proxy, se necessário

○ Instalação do pacote PHP Code Sniffer

○ Definição do "channel" PHPMD

○ Definição do "channel" PDEPEND

○ Instalação do pacote PHPMD
Configurando o PHP Sniffer

○ Seguem abaixo os comandos que devem ser executados
   em terminal, um após o outro, para executar os passos
   definidos no slide anterior
$ wget http://pear.php.net/go-pear.phar
$ php go-pear.phar
$ pear config-set http_proxy <username>:<password>@<proxy-
url-address>:<port-number>
$ pear install --alldeps PHP_CodeSniffer-1.3.0
$ pear channel-discover pear.phpmd.org
$ pear channel-discover pear.pdepend.org
$ pear install --alldeps phpmd/PHP_PMD
$ phpcs -i
Configurando o PHP Sniffer

○ Para adicionar um novo standard
   ○ Abrir a pasta de Standards "/pear-
     path/PHP/CodeSniffer/Standards"
   ○ Adicione sua pasta de Standard
   ○ Execute phpcs -i para confirmar seu standard
Configurando sua IDE

○ As configurações a seguir foram feitas nas seguintes
   versões de IDE
   ○ Netbeans 6.9+
   ○ Eclipse Helios
Configurando sua IDE
                  Netbeans
○ Baixar o plugin phpMD
  ○ http://sourceforge.
     net/projects/phpmdnb/files/nbm/NetBeans-6.9.1/
  ○ nb-phpmd-20110516-nb6.9.1.201011082200.nbm

○ Instalar o plugin
   ○ Abrir Netbeans
   ○ Abrir Ferramentas => Plug-ins
   ○ Selecionar aba "Baixados"
   ○ Clicar em "Adicionar plug-ins"
   ○ Selecionar o arquivo baixado
   ○ Clicar em Continuar
   ○ Após a instalação, reiniciar o Netbeans
Configurando sua IDE
                  Netbeans
○ Habilitar plugin
   ○   Abrir Netbeans
   ○   Abrir Ferramentas => Plug-ins
   ○   Selecionar aba "Instalado"
   ○   Selecionar plugin "phpCS-MD Plugin"
   ○   Clicar em Ativar
   ○   Clicar em Habilitar
   ○   Clicar em Finalizar
   ○   Fechar janela de Plug-ins
Configurando sua IDE
                  Netbeans
○ Configurar plugin
   ○ Abrir Ferramentas => Opções => PHP
   ○ Selecionar aba "phpMD"
   ○ No campo "phpMD batch file", adicionar executável
     phpMD
     ■ /php-path/phpmd.bat || /php-path/phpmd
   ○ No campo "includes", colocar a expressão
     ■ ^.*.inc[5]?$|^.*.module[5]?$|^.*.php[5]?$|^.*.css
         [5]?$|^.*.install?$|^.*.js?$|^.*.theme?$|^.*.
         engine?$|^.*.test?$|^.*.info?$|^.*.po?$
   ○ Clicar em "test settings"
   ○ Clicar em OK
Configurando sua IDE
                  Netbeans
○ Configurar plugin
   ○ Abrir Ferramentas => Opções => PHP
   ○ Selecionar aba "phpCodeSniffer"
   ○ No campo "phpCodeSniffer batch file", adicionar
     executável phpCodeSniffer
     ■ /php-path/phpcs.bat || /php-path/phpcs
   ○ No campo "Standard", informe o standard
   ○ No campo "includes", colocar a expressão
     ■ ^.*.inc[5]?$|^.*.module[5]?$|^.*.php[5]?$|^.*.css
         [5]?$|^.*.install?$|^.*.js?$|^.*.theme?$|^.*.
         engine?$|^.*.test?$|^.*.info?$|^.*.po?$
   ○ Clicar em "test settings"
   ○ Clicar em OK
Configurando sua IDE
                  Netbeans
○ Abrir a Janela de Tarefas
   ○ [Ctrl] + [6]
   ○ No ícone folha em branco
      ■ Clicar em "Exibir tarefas somente para arquivos
         editados atualmente."
   ○ Clicar na seta que aponta para baixo no ícone do funil
      ■ Clicar em Editar
Configurando sua IDE
                 Netbeans
○ Marcar as configurações conforme a imagem abaixo:
Configurando sua IDE
                  Netbeans
○ Conforme um arquivo for aberto, alterado e salvo, o
   Sniffer será executado automaticamente e a janela
   tarefas exibirá os erros de standard.
Configurando sua IDE
                    Eclipse
○ Adicionar plugin
   ○   Abrir Eclipse
   ○   Clicar em Help => Install new Software
   ○   Clicar em Add
   ○   Ao abrir janela "Add Repository"
       ■ Name: PHP Tool Integration (PTI)
       ■ Location: http://www.phpsrc.org/eclipse/pti
   ○   Após confirmar os dados, selecionar o Plugin
   ○   Clicar em Next
   ○   Aceitar termos e clicar em Finish
   ○   Confirmar Security Warning
   ○   Reiniciar Eclipse
Configurando sua IDE
                  Eclipse
○ Configurar PHP no Eclipse
   ○ Abrir Windows => Preferences
   ○ Abrir opção PHP => PHP Executables
   ○ Clicar em Add
   ○ Defina o nome de acordo com a versão local do PHP
   ○ No campo Executable Path, informe o executavel
     ■ /php-path/bin/php.exe || /php-path/bin/php.exe
   ○ SAPI Type, marque a opção CLI
   ○ Clicar em Finish
   ○ Fechar a janela Preferences
Configurando sua IDE
                   Eclipse
○ Configurar plugin
   ○ Abrir a pasta de Standards do plugin
      ■ /eclipse-path/plugins/org.phpsrc.eclipse.pti.library.
         pear_1.2.2.
         R2011062700000/php/library/PEAR/PHP/CodeSnif
         fer/Standards
   ○ Adicione sua pasta de Standard nesse local
   ○ Abrir Windows => Preferences
   ○ Abrir opção PHP Tools => PHP CodeSniffer
   ○ Preencher opções conforme a próxima imagem, mas
     informe o PHP Executable e Standard apropriados
Configurando sua IDE
       Eclipse
Configurando sua IDE
                  Eclipse
○ Configurar plugin
   ○ Clicar em Window => Show View => Problems
   ○ Na janela Problems, clicar em View Menu
   ○ Clicar em Configure Contents
   ○ Clicar em New
     ■ Adicionar o nome do Standard
   ○ Scope
     ■ ‘On selected element only’
   ○ Types
     ■ Deselect All
     ■ PHP Code Sniffer
     ■ Problem
   ○ Clicar em OK
Configurando sua IDE
       Eclipse
Configurando sua IDE
                   Eclipse
○ Para executar o Sniffer
   ○ Clicar com o botão direito no arquivo
     ■ Clicar em PHP Tools => PHP Code Sniffer
   ○ A janela Problems será atualizada com os erros de
     Standard
Agradecimentos

○ PHP Conference Brazil 2012

○ Participantes do evento

○ Comunidade PHP

○ Aos amigos Thomas Bryan e Rafael Nica pelo suporte
   e revisão do conteúdo
Dúvidas
Contato

○ E-mail
   ○ wartocampos@hotmaill.com
   ○ wartocampos@gmail.com

○ Facebook
   ○ www.facebook.com/wartoca
Referências Bibliográficas

http://blogs.funiber.org/direcao-empresarial-rsc/2012/10/04/definicao-do-publico-alvo/
http://en.wikipedia.org/wiki/Software_quality
http://msdn.microsoft.com/en-us/library/aa291591%28v=vs.71%29.aspx
http://en.wikipedia.org/wiki/Coding_conventions
http://drupal.org/contribute/development#page-subtitle
http://drupal.org/node/360052
http://drupal.org/coding-standards
http://pear.php.net/manual/en/package.php.php-codesniffer.intro.php
http://pear.php.net/manual/en/package.php.php-codesniffer.coding-standard-tutorial.php
http://en.wikipedia.org/wiki/Hudson_%28software%29
http://en.wikipedia.org/wiki/Jenkins_%28software%29
http://en.wikipedia.org/wiki/Sonar_%28software_quality%29

Seguindo padrões: Codificando profissionalmente com PHP Sniffer

  • 1.
    Seguindo padrões: Codificando profissionalmente com PHP Sniffer Vinicius Warto Campos www.facebook.com/wartoca
  • 2.
    Vinicius Warto Campos ○Desenvolvedor de Software na empresa Ci&T, atuando exclusivamente no desenvolvimento de aplicações Web, utilizando PHP, Java e .Net. ○ Larga experiência em desenvolvimento de projetos PHP. ○ Atua há 5 anos com desenvolvimento em PHP. ○ Músico nas horas vagas ○ Video-game sempre é uma boa pedida
  • 3.
    Agenda ○ Público Alvo ○ O que são standards? ○ Por que utilizar standards? ○ O que é PHP Sniffer? ○ Utilizando PHP Sniffer ○ Aplicações Práticas ○ Configurando o PHP Sniffer ○ Configurando sua IDE
  • 4.
    Público Alvo ○ Ambiente ○ Arquiteto ○ Analista de Suporte ○ Modelagem de Sistemas ○ Arquiteto de Sistemas ○ Arquiteto de Software ○ Liderança Técnica ○ Líder Técnico ○ Líder de Desenvolvimento
  • 5.
    Público Alvo ○ Implementação ○ Analista Programador ○ Programador ○ Desenvolvedor ○ Implementador ○ Webdesigner ○ Webdeveloper
  • 6.
    O que sãostandards? ○ Convenção de código ○ Conjunto de boas práticas no momento de codificação ○ Visam validar um padrão de implementação, independentemente de qual parte de um código está sendo implementada ○ DAO ○ DTO ○ Controller ○ Generic Class
  • 7.
    O que sãostandards? ○ Não definem Padrões de Projetos ○ Singleton ○ Factory ○ MVC ○ ORM ○ Active Record ○ Data Persistence ○ Não definem utilização de frameworks ○ Zend ○ Symfony ○ CakePHP ○ Code Igniter
  • 8.
    O que sãostandards? ○ Definem: ○ Indentação do Código ○ Padrão de comentários ○ Padrão de documentação ○ Declarações ○ Statements ○ Convenções de nomenclatura ○ Práticas de programação ○ Princípios de programação ○ White spaces ○ Atribuição e comparação de valores
  • 9.
    O que sãostandards? ○ Adicionalmente podem validar ○ Performance do código ○ Segurança do código ○ Delimitador de quebra de linha ○ Código duplicado ○ Sugestão de refatoração de código
  • 10.
    Por que utilizarstandards? ○ Garantir a qualidade do software ○ Garantir a legibilidade do código ○ Reduzir o custo da manutenção ○ Definir um código seguro ○ Definir um código confiável ○ Definir um código eficiente
  • 11.
    Por que utilizarstandards? ○ Definir a utilização de boas práticas ○ Evitar problemas de padronização de código em Code Review
  • 12.
    Por que utilizarstandards?
  • 13.
    Por que utilizarstandards? ○ Você colabora para projetos Open Source? ○ Você submete códigos para aprovação? ○ Sabia que esses códigos devem ser padronizados? ○ Drupal ○ Contribute to development ○ Standards, security and best practices ○ Coding standards
  • 14.
    O que éPHP Sniffer? ○ É a ferramente sobre a qual você testará um Coding Standard em seu projeto ○ É um módulo da biblioteca PEAR, que possui um script que detecta violações de códigos que utilizam um Standard definido ○ Também detecta erros comuns de semântica ○ É necessário possui o módulo PEAR para instalá-lo e utilizá-lo
  • 15.
    Utilizando PHP Sniffer ○Para utilizar o PHP Code Sniffer, executamos o camando phpcs na tela do terminal ○ phpcs {lista de parâmetros} ○ phpcs --help ○ phpcs -i ○ phpcs /path/to/my/project/my-file.php ○ phpcs /path/to/my/project/ ○ phpcs -n /path/to/my/project/ ○ phpcs --standard=PEAR /path/to/my/project ○ phpcs --standard=/path/to/MyStandard /path/to/my/project/my-file.php
  • 16.
    Utilizando PHP Sniffer $phpcs --help Usage: phpcs [-nwlsapvi] [-d key[=value]] [--report=<report>] [--report-file=<reportfile>] [--report-<report>=<reportfile>] ... [--report-width=<reportWidth>] [--generator=<generator>] [--tab-width=<tabWidth>] [--severity=<severity>] [--error-severity=<severity>] [--warning-severity=<severity>] [--config-set key value] [--config-delete key] [--config-show] [--standard=<standard>] [--sniffs=<sniffs>] [--encoding=<encoding>] [--extensions=<extensions>] [--ignore=<patterns>] <file> ... -n Do not print warnings (shortcut for --warning-severity=0) -w Print both warnings and errors (on by default) -l Local directory only, no recursion -s Show sniff codes in all reports -a Run interactively -p Show progress of the run -v[v][v] Print verbose output -i Show a list of installed coding standards -d Set the [key] php.ini value to [value] or [true] if value is omitted --help Print this help message
  • 17.
    Utilizando PHP Sniffer $phpcs -i The installed coding standards are Zend, PEAR, PHPCS, Squiz and MySource $ phpcs /path/to/my/project/my-file.php FILE: /path/to/my/project/my-file.php -------------------------------------------------------------------------------- FOUND 5 ERROR(S) AFFECTING 2 LINE(S) -------------------------------------------------------------------------------- 2 | ERROR | Missing file doc comment 20 | ERROR | PHP keywords must be lowercase; expected "false" but found "FALSE" 47 | ERROR | Line not indented correctly; expected 4 spaces but found 1 51 | ERROR | Missing function doc comment 88 | ERROR | Line not indented correctly; expected 9 spaces but found 6 --------------------------------------------------------------------------------
  • 18.
    Utilizando PHP Sniffer $phpcs /path/to/my/project/ FILE: /path/to/my/project/my-file.php -------------------------------------------------------------------------------- FOUND 5 ERROR(S) AFFECTING 5 LINE(S) -------------------------------------------------------------------------------- 2 | ERROR | Missing file doc comment 20 | ERROR | PHP keywords must be lowercase; expected "false" but found "FALSE" 47 | ERROR | Line not indented correctly; expected 4 spaces but found 1 51 | ERROR | Missing function doc comment 88 | ERROR | Line not indented correctly; expected 9 spaces but found 6 -------------------------------------------------------------------------------- FILE: /path/to/my/project/your-file.php -------------------------------------------------------------------------------- FOUND 1 ERROR(S) AND 1 WARNING(S) AFFECTING 1 LINE(S) -------------------------------------------------------------------------------- 21 | ERROR | PHP keywords must be lowercase; expected "false" but found | | "FALSE" 21 | WARNING | Equals sign not aligned with surrounding assignments --------------------------------------------------------------------------------
  • 19.
    Aplicações Práticas ○ IDE ○ Eclipse ○ Netbeans ○ Code Review ○ Continuous Integration Software ○ Hudson ○ Jenkins ○ Code Analysis Software ○ Sonar
  • 20.
    Aplicações Práticas ○ Sugestãode processo "Build and Deploy" ○ Criar um projeto Hudson / Jenkins ○ Atualizar repositório (CVS / SVN / GIT) ○ Executar Sonar ○ Executar PHP Sniffer ○ Build ○ Deploy
  • 21.
    Configurando o PHPSniffer ○ Instalação do módulo PEAR ○ Habilitação do PEAR para proxy, se necessário ○ Instalação do pacote PHP Code Sniffer ○ Definição do "channel" PHPMD ○ Definição do "channel" PDEPEND ○ Instalação do pacote PHPMD
  • 22.
    Configurando o PHPSniffer ○ Seguem abaixo os comandos que devem ser executados em terminal, um após o outro, para executar os passos definidos no slide anterior $ wget http://pear.php.net/go-pear.phar $ php go-pear.phar $ pear config-set http_proxy <username>:<password>@<proxy- url-address>:<port-number> $ pear install --alldeps PHP_CodeSniffer-1.3.0 $ pear channel-discover pear.phpmd.org $ pear channel-discover pear.pdepend.org $ pear install --alldeps phpmd/PHP_PMD $ phpcs -i
  • 23.
    Configurando o PHPSniffer ○ Para adicionar um novo standard ○ Abrir a pasta de Standards "/pear- path/PHP/CodeSniffer/Standards" ○ Adicione sua pasta de Standard ○ Execute phpcs -i para confirmar seu standard
  • 24.
    Configurando sua IDE ○As configurações a seguir foram feitas nas seguintes versões de IDE ○ Netbeans 6.9+ ○ Eclipse Helios
  • 25.
    Configurando sua IDE Netbeans ○ Baixar o plugin phpMD ○ http://sourceforge. net/projects/phpmdnb/files/nbm/NetBeans-6.9.1/ ○ nb-phpmd-20110516-nb6.9.1.201011082200.nbm ○ Instalar o plugin ○ Abrir Netbeans ○ Abrir Ferramentas => Plug-ins ○ Selecionar aba "Baixados" ○ Clicar em "Adicionar plug-ins" ○ Selecionar o arquivo baixado ○ Clicar em Continuar ○ Após a instalação, reiniciar o Netbeans
  • 26.
    Configurando sua IDE Netbeans ○ Habilitar plugin ○ Abrir Netbeans ○ Abrir Ferramentas => Plug-ins ○ Selecionar aba "Instalado" ○ Selecionar plugin "phpCS-MD Plugin" ○ Clicar em Ativar ○ Clicar em Habilitar ○ Clicar em Finalizar ○ Fechar janela de Plug-ins
  • 27.
    Configurando sua IDE Netbeans ○ Configurar plugin ○ Abrir Ferramentas => Opções => PHP ○ Selecionar aba "phpMD" ○ No campo "phpMD batch file", adicionar executável phpMD ■ /php-path/phpmd.bat || /php-path/phpmd ○ No campo "includes", colocar a expressão ■ ^.*.inc[5]?$|^.*.module[5]?$|^.*.php[5]?$|^.*.css [5]?$|^.*.install?$|^.*.js?$|^.*.theme?$|^.*. engine?$|^.*.test?$|^.*.info?$|^.*.po?$ ○ Clicar em "test settings" ○ Clicar em OK
  • 28.
    Configurando sua IDE Netbeans ○ Configurar plugin ○ Abrir Ferramentas => Opções => PHP ○ Selecionar aba "phpCodeSniffer" ○ No campo "phpCodeSniffer batch file", adicionar executável phpCodeSniffer ■ /php-path/phpcs.bat || /php-path/phpcs ○ No campo "Standard", informe o standard ○ No campo "includes", colocar a expressão ■ ^.*.inc[5]?$|^.*.module[5]?$|^.*.php[5]?$|^.*.css [5]?$|^.*.install?$|^.*.js?$|^.*.theme?$|^.*. engine?$|^.*.test?$|^.*.info?$|^.*.po?$ ○ Clicar em "test settings" ○ Clicar em OK
  • 29.
    Configurando sua IDE Netbeans ○ Abrir a Janela de Tarefas ○ [Ctrl] + [6] ○ No ícone folha em branco ■ Clicar em "Exibir tarefas somente para arquivos editados atualmente." ○ Clicar na seta que aponta para baixo no ícone do funil ■ Clicar em Editar
  • 30.
    Configurando sua IDE Netbeans ○ Marcar as configurações conforme a imagem abaixo:
  • 31.
    Configurando sua IDE Netbeans ○ Conforme um arquivo for aberto, alterado e salvo, o Sniffer será executado automaticamente e a janela tarefas exibirá os erros de standard.
  • 32.
    Configurando sua IDE Eclipse ○ Adicionar plugin ○ Abrir Eclipse ○ Clicar em Help => Install new Software ○ Clicar em Add ○ Ao abrir janela "Add Repository" ■ Name: PHP Tool Integration (PTI) ■ Location: http://www.phpsrc.org/eclipse/pti ○ Após confirmar os dados, selecionar o Plugin ○ Clicar em Next ○ Aceitar termos e clicar em Finish ○ Confirmar Security Warning ○ Reiniciar Eclipse
  • 33.
    Configurando sua IDE Eclipse ○ Configurar PHP no Eclipse ○ Abrir Windows => Preferences ○ Abrir opção PHP => PHP Executables ○ Clicar em Add ○ Defina o nome de acordo com a versão local do PHP ○ No campo Executable Path, informe o executavel ■ /php-path/bin/php.exe || /php-path/bin/php.exe ○ SAPI Type, marque a opção CLI ○ Clicar em Finish ○ Fechar a janela Preferences
  • 34.
    Configurando sua IDE Eclipse ○ Configurar plugin ○ Abrir a pasta de Standards do plugin ■ /eclipse-path/plugins/org.phpsrc.eclipse.pti.library. pear_1.2.2. R2011062700000/php/library/PEAR/PHP/CodeSnif fer/Standards ○ Adicione sua pasta de Standard nesse local ○ Abrir Windows => Preferences ○ Abrir opção PHP Tools => PHP CodeSniffer ○ Preencher opções conforme a próxima imagem, mas informe o PHP Executable e Standard apropriados
  • 35.
  • 36.
    Configurando sua IDE Eclipse ○ Configurar plugin ○ Clicar em Window => Show View => Problems ○ Na janela Problems, clicar em View Menu ○ Clicar em Configure Contents ○ Clicar em New ■ Adicionar o nome do Standard ○ Scope ■ ‘On selected element only’ ○ Types ■ Deselect All ■ PHP Code Sniffer ■ Problem ○ Clicar em OK
  • 37.
  • 38.
    Configurando sua IDE Eclipse ○ Para executar o Sniffer ○ Clicar com o botão direito no arquivo ■ Clicar em PHP Tools => PHP Code Sniffer ○ A janela Problems será atualizada com os erros de Standard
  • 39.
    Agradecimentos ○ PHP ConferenceBrazil 2012 ○ Participantes do evento ○ Comunidade PHP ○ Aos amigos Thomas Bryan e Rafael Nica pelo suporte e revisão do conteúdo
  • 40.
  • 41.
    Contato ○ E-mail ○ wartocampos@hotmaill.com ○ wartocampos@gmail.com ○ Facebook ○ www.facebook.com/wartoca
  • 42.