PHP Tooling

O canivete suiço que todo dev PHP deveria conhecer

Vicente Martins

Comunidades:

  • PHP - PB
  • GRUDE-PB

Objetivos

Começando pelo começo...

$ php -h

Começando pelo começo...

$ php -a

  • Modo interativo do PHP;


  • Necessidade da extensão readline;

 

Começando pelo começo...

$ php -a

Começando pelo começo...

$ psysh (psysh.org)

  • Muito mais interativa do que o modo interativo nativo do PHP;


  • Também tem a necessidade da extensão readline;

Começando pelo começo...

$ psysh (psysh.org)

Começando pelo começo...

$ psysh (psysh.org)

  • Pode ser usado como um debugger;

  • Aceita [tab] para autocomplete;

  • Acessa namespaces;

  • Permite rodar comandos como o list (listar sobre sua codebase), show (mostra trecho do código) e help;

  • Permite a criação de comandos;

Tentando deixar mais interessante...

Tentando deixar mais interessante...

xDebug

  • Ferramenta de debugger mais popular do ecosystema PHP;
    • Autointitula upgrade do var_dump();

  • Stack trace em tempo real;

  • Através de profiles, possibilita analise de gargalos na base de código;
 

Tentando deixar mais interessante...

xDebug

  • O lado negativo desta ferramenta está relacionada a sua configuração;
 

Seguimos tentando...

Seguimos tentando...

$ composer

  • Gerenciador de dependências mais famoso do ecosistema PHP;

  • Principal repositório é o Packagist (packagist.org);

  • Conjunto de facilidades para o dia-a-dia;
 
 

Quem sabe agora...

Análise de padrão de código

Quem sabe agora...

$ phpcs || phpcbf
  • Deveria dizer PHP_CodeSniffer?

  • phpcs executa um sniffer para cada padrão de código;

  • phpcbf corrige, quando possível, as falhas encontradas pelo phpcs;

  • Exige como versão mínima o PHP 5.4.x;
 
1

Quem sabe agora...

$ phpcs

Quem sabe agora...

$ phpcbf

Ou então agora...

Análise estática de código

Ou então agora...

$ phan

  • Realiza análise sobre falsos positivos em cima da sua base de código;

  • Depende da extensão php-ast;
 

Ou então agora...

$ phan

  • Features que mais me chamam atenção
    • Checagem de todas as estruturas existente no arquivo do script;

    • Compatibilidade de versão;

    • Valida e garante o tipo de retorno para metodos/funções/closures;
 

Ou então agora...

$ phan

  • Outras features interessantes
    • Partes não usadas;

    • Suporta verificações a partir de uma PHPDoc;

    • Várias outras funcionalidades lindas;
 

Vamo que vamo...

Testes

Vamo que vamo...

PHPUnit

  • Melhor ferramenta para testes automatizados do ambiente PHP (Opnião própria);

  • Melhorias significativas com a atualização do PHP e surgimento do FIG;

  • Possui um conjunto de asserções que possibilitam testar as partes do software que é interessante aplicar test;
 

Vamo que vamo...

PHPUnit

  • Execução a partir do CLI;

  • Aceita arquivo de configuração - phpunit.xml
 

Minha última tentativa!

Deployer

Minha última tentativa!

  • Ferramenta de deploy escrita em PHP;

  • Integração com os mais diversos frameworks PHP;
 

Minha última tentativa!

  • Principais funcionalidades:
    • Setup simples;
    • Execução em paralelo com outras ferramentas;
    • Possibilidade de rollback;
    • Necessário somente acesso via SSH;
    • Zero down time;
 

Minha última tentativa!

De forma simplificada, você define tarefas e o deployer segue os passos definidos. Se nenhum problema for identificado, sua aplicação vai para produção logo após a conclusão das tasks.

 

Minha última tentativa!

Não digam que não tentei!

Isso é tudo pessoal!

Dúvidas?

Contatos

  • twitter / telegram / outras

    • ​@ vicentimartins
  • ​email

    • ​geo.martins7@gmail.com
  • ​fone

    • ​(83) 9 9824.2749

PHP Tooling

By Vicente Martins

PHP Tooling

  • 287