Imagem Docker que fornece ferramentas de análise estática para PHP. A lista de ferramentas disponíveis e o instalador são gerenciados no repositório jakzal/toolbox
.
Repositório do hub Docker: https://hub.docker.com/r/jakzal/phpqa/
Compilações noturnas: https://hub.docker.com/r/jakzal/phpqa-nightly/
latest
, debian
(Dockerfile)1.99.0
, 1.99
, 1.99.0-debian
, 1.99-debian
(arquivo Docker)1.99.0-php8.1
, 1.99-php8.1
, php8.1-debian
, php8.1
(arquivo Docker)1.99.0-php8.2
, 1.99-php8.2
, php8.2-debian
, php8.2
(arquivo Docker)1.99.0-php8.3
, 1.99-php8.3
, php8.3-debian
, php8.3
(arquivo Docker)alpine
(Dockerfile)1.99.0-alpine
, 1.99-alpine
, (Dockerfile)1.99.0-php8.1-alpine
, 1.99-php8.1-alpine
, php8.1-alpine
(arquivo Docker)1.99.0-php8.2-alpine
, 1.99-php8.2-alpine
, php8.2-alpine
(arquivo Docker)1.99.0-php8.3-alpine
, 1.99-php8.3-alpine
, php8.3-alpine
(arquivo Docker) Atualizado diariamente: latest
, debian
, alpine
, php8.4
, php8.4-alpine
, etc. Atualizado na mudança de versão do patch: 1.61
, 1.61-php8.4
1.61.0
1.61-php8.4-alpine
, etc. 1.61.0
, 1.61.0-php8.4
, 1.61.0-php8.4-alpine
, etc.
Estas são as tags mais recentes para versões do PHP que não são mais suportadas:
1.92.7-php8.0
, 1.93-php8.0
, php8.0-debian
, php8.0
(arquivo Docker)1.92.7-php8.0-alpine
, 1.93-php8.0-alpine
, php8.0-alpine
(arquivo Docker)1.80.0-php7.4
, 1.80-php7.4
, php7.4-debian
, php7.4
(arquivo Docker)1.80.0-php7.4-alpine
, 1.80-php7.4-alpine
, php7.4-alpine
(arquivo Docker)1.61.2-php7.3
, 1.61-php7.3
, php7.3-debian
, php7.3
(debian/Dockerfile)1.61.2-php7.3-alpine
, 1.61-php7.3-alpine
, php7.3-alpine
(alpine/Dockerfile)1.44.0-php7.2
, 1.44-php7.2
, php7.2
(7.2/debian/Dockerfile)1.44.0-php7.2-alpine
, 1.44-php7.2-alpine
, php7.2-alpine
(7.2/alpine/Dockerfile)1.26.0-php7.1
, 1.26-php7.1
, php7.1
(7.1/debian/Dockerfile)1.26.0-php7.1-alpine
, 1.26-php7.1-alpine
, php7.1-alpine
(7.1/alpine/Dockerfile) Nome | Descrição | PHP 8.1 | PHP 8.2 | PHP 8.3 | PHP 8.4 |
---|---|---|---|---|---|
comportar | Ajuda a testar as expectativas do negócio | ||||
caixa | Bundler de aplicativos rápido e sem configuração com PHARs | ||||
caixa-3 | Bundler de aplicativos rápido e sem configuração com PHARs | ||||
agitar | Descobre bons candidatos para refatoração | ||||
codecepção | Codeception é uma estrutura de teste PHP no estilo BDD | ||||
compositor | Gerenciador de Dependências para PHP | ||||
plugin-composer-bin | Plugin Composer para instalar bin vendors em locais isolados | ||||
compositor-normalizar | Plugin Composer para normalizar arquivos compositor.json | ||||
verificador de exigência de compositor | Verifique se nenhum símbolo desconhecido é usado nas fontes de um pacote. | ||||
compositor-requer-checker-3 | Verifique se nenhum símbolo desconhecido é usado nas fontes de um pacote. | ||||
compositor não utilizado | Mostre pacotes não utilizados digitalizando seu código | ||||
depende | Detecte falhas em sua arquitetura | ||||
detector de depreciação | Encontra usos de código obsoleto | ||||
deptrac | Aplica regras de dependência entre camadas de software | ||||
filtro diferente | Aplica ferramentas de controle de qualidade para execução em uma única solicitação pull | ||||
ecs | Configura e executa verificações padrão de codificação | ||||
infecção | Estrutura de teste de mutação PHP baseada em AST | ||||
Larastan | Extensão PHPStan para Laravel | ||||
verificador de segurança local-php | Verifica as dependências do compositor em busca de vulnerabilidades de segurança conhecidas | ||||
lint paralelo | Verifica a sintaxe do arquivo PHP | ||||
parateste | Teste paralelo para PHPUnit | ||||
depende | Ferramenta de análise estática | ||||
praga | O elegante framework de testes PHP | ||||
Fã | Ferramenta de análise estática | ||||
cinco | Ambiente de instalação e verificação PHAR | ||||
php-cs-fixador | Fixador de padrões de codificação PHP | ||||
php-fuzzer | Um fuzzer para PHP, que pode ser usado para encontrar bugs em bibliotecas, alimentando-as com entradas 'aleatórias' | ||||
verificador de php-semver | Sugere uma próxima versão de acordo com o versionamento semântico | ||||
php | Verifica se há suposições fracas | ||||
phparkitect | Ajuda a colocar restrições arquitetônicas em uma base de código PHP | ||||
php | Ferramenta de teste de arquitetura fácil de usar | ||||
phpbench | Estrutura de benchmarking PHP | ||||
phpca | Encontra o uso de extensões não integradas | ||||
phpcb | Navegador de código PHP | ||||
phpcbf | Corrige automaticamente violações dos padrões de codificação | ||||
instalação do phpcodesniffer-composer | Fácil instalação dos padrões de codificação PHP_CodeSniffer (conjuntos de regras). | ||||
phpcov | um frontend de linha de comando para a biblioteca PHP_CodeCoverage | ||||
phppd | Detector de copiar/colar | ||||
phpcs | Detecta violações de padrões de codificação | ||||
phpcs-segurança-auditoria | Encontra vulnerabilidades e pontos fracos relacionados à segurança no código PHP | ||||
phpdd | Encontra o uso de recursos obsoletos | ||||
phpDocumentor | Gerador de documentação | ||||
phpinsights | Analisa a qualidade, estilo, arquitetura e complexidade do código | ||||
PHPlint | Lints arquivos php em paralelo | ||||
phploc | Uma ferramenta para medir rapidamente o tamanho de um projeto PHP | ||||
phpmd | Uma ferramenta para encontrar problemas em código PHP | ||||
phpmetria | Ferramenta de análise estática | ||||
phpmnd | Ajuda a detectar números mágicos | ||||
phpspec | Estrutura SpecBDD | ||||
PHPstan | Ferramenta de análise estática | ||||
código banido do phpstan | Regras PHPStan para detectar chamadas para funções específicas que você não deseja em seu projeto | ||||
phpstan-beberlei-assert | Extensão PHPStan para beberlei/assert | ||||
regras de depreciação do phpstan | Regras PHPStan para detectar código obsoleto | ||||
doutrina phpstan | Extensões de doutrina para PHPStan | ||||
regras do phpstan-ergebnis | Regras adicionais para PHPstan | ||||
regras de exceção do phpstan | Regras do PHPStan para exceções verificadas e não verificadas | ||||
phpstan-larastan | Instalação separada do phpstan para larastan | ||||
phpstan-phpunit | Extensões e regras do PHPUnit para PHPStan | ||||
regras estritas do phpstan | Regras extra rígidas e opinativas para PHPStan | ||||
phpstan-symfony | Extensão Symfony para PHPStan | ||||
phpstan-webmozart-assert | Extensão PHPStan para webmozart/assert | ||||
phpunit | A estrutura de teste PHP | ||||
phpunit-10 | A estrutura de teste PHP (versão 10.x) | ||||
phpunit-8 | A estrutura de teste PHP (versão 8.x) | ||||
phpunit-9 | A estrutura de teste PHP (versão 9.x) | ||||
cerveja | Fixador de estilo de código PHP opinativo para Laravel | ||||
salmo | Encontra erros em aplicativos PHP | ||||
salmo-plugin-doutrina | Esboços para permitir que o Salmo entenda melhor a Doutrina | ||||
salmo-plugin-phpunit | Plugin Salmo para PHPUnit | ||||
salmo-plugin-symfony | Plugin de Salmo para Symfony | ||||
psecio-análise | Verifica o código em busca de possíveis problemas relacionados à segurança | ||||
reitor | Ferramenta para atualizações e refatoração instantâneas de código | ||||
roave-verificação de compatibilidade com versões anteriores | Ferramenta para comparar duas revisões de uma API de classe para verificar quebras de BC | ||||
simples-phpunit | Fornece utilitários para relatar testes legados e uso de código obsoleto | ||||
fixador twig-cs | Corrige automaticamente arquivos twig seguindo as regras padrão de codificação oficial | ||||
galho-lint | Clitwig autônomo 1.X linter | ||||
galho-linter | Clitwig 3.X autônomo | ||||
galhos | O checkstyle que faltava para o galho! | ||||
yaml-lint | Utilitário de linha de comando compacto para verificar a sintaxe do arquivo YAML |
Algumas ferramentas não estão incluídas na imagem do docker, para utilizá-las consulte sua documentação:
Nome | Resumo |
---|---|
analisar | Visualiza métricas e código-fonte |
legado de caixa | Versão legada da caixa |
compositor-normalizar | Plugin Composer para normalizar arquivos compositor.json |
padrão de design | Detecta padrões de design |
lint paralelo | Verifica a sintaxe do arquivo PHP |
detector de acoplamento php | Detecta problemas de acoplamento de código |
formatador php | Fixador de padrões de codificação personalizados |
phpcf | Encontra o uso de recursos obsoletos |
phpda | Gera gráficos de dependência |
phpdoc para typehint | Adiciona automaticamente dicas de tipo e tipos de retorno com base em PHPDocs |
regras do phpstan-localheinz | Regras adicionais para PHPstan |
verificador de segurança | Verifica as dependências do compositor em busca de vulnerabilidades de segurança conhecidas |
testabilidade | Analisa e relata problemas de testabilidade de uma base de código php |
Puxe a imagem:
docker pull jakzal/phpqa
O comando padrão listará as ferramentas disponíveis:
docker run -it --rm jakzal/phpqa
Para executar a ferramenta selecionada dentro do contêiner, você precisará montar o diretório do projeto no contêiner com -v "$(pwd):/project"
. Algumas ferramentas gostam de gravar no diretório /tmp
(como PHPStan ou Behat em alguns casos), portanto, geralmente é útil compartilhá-lo entre execuções do docker, ou seja, com -v "$(pwd)/tmp-phpqa:/tmp"
. Se quiser interromper a ferramenta selecionada se ela demorar muito para ser concluída, você pode usar a opção --init
. Consulte a documentação do docker run para obter mais informações.
docker run --init -it --rm -v " $( pwd ) :/project " -v " $( pwd ) /tmp-phpqa:/tmp " -w /project jakzal/phpqa phpstan analyse src
Você pode querer ajustar este comando de acordo com suas necessidades e criar um alias por conveniência:
alias phpqa= ' docker run --init -it --rm -v "$(pwd):/project" -v "$(pwd)/tmp-phpqa:/tmp" -w /project jakzal/phpqa:alpine '
Adicione-o ao seu ~/.bashrc
para que seja definido sempre que você iniciar uma nova sessão de terminal.
Agora o comando fica muito mais simples:
phpqa phpstan analyse src
git clone https://github.com/jakzal/phpqa.git
cd phpqa
make build-debian
Para construir a versão alpina:
make build-alpine
Por favor, verifique o livro de receitas para mais dicas e truques.
Leia o guia de contribuição para saber como contribuir para este projeto. Observe que este projeto é lançado com um Código de Conduta do Colaborador. Ao participar deste projeto você concorda em cumprir seus termos.