Instale em qualquer projeto PHP 7.2-PHP 8.3 com quaisquer dependências
Extremamente rápido com corrida paralela fora da caixa
Use PHP_CodeSniffer ou PHP-CS-Fixer - o que você quiser
Use conjuntos preparados e conjuntos PHP CS Fixer para economizar tempo
compositor requer simplificação/padrão de codificação fácil --dev
fornecedor/bin/ecs
Na primeira execução, o ECS cria o arquivo de configuração ecs.php com diretórios e a primeira regra para iniciar.
Então você pode executar novamente para ver as diferenças sugeridas:
fornecedor/bin/ecs
Para realmente corrigir seu código , adicione --fix :
fornecedor/bin/ecs --fix
É isso!
Na maioria das vezes, você ficará satisfeito com a configuração padrão. A parte mais relevante é configurar caminhos, verificadores e conjuntos:
usar PhpCsFixerFixerArrayNotationArraySyntaxFixer; usar PhpCsFixerFixerListNotationListSyntaxFixer; usar SymplifyEasyCodingStandardConfigECSConfig; retornar ECSConfig::configure()
->withPaths([__DIR__ . '/src', __DIR__ . '/testes'])
->withConfiguredRule(
ArraySyntaxFixer::classe,
['sintaxe' => 'longo']
)
->comRegras([
ListSyntaxFixer::classe,
])
->withPreparedSets(psr12: verdadeiro); Deseja verificar todos os arquivos *.php em sua raiz ( ecs.php , rector.php etc.)? Em vez de listá-los um por um, use o método ->withRootFiles() :
use SymplifyEasyCodingStandardConfigECSConfig;return ECSConfig::configure()
->withPaths([__DIR__ . '/src', __DIR__ . '/testes'])
->withRootFiles();Você deseja incluir um dos 44 conjuntos do php-cs-fixer?
Você pode:
use SymplifyEasyCodingStandardConfigECSConfig;return ECSConfig::configure()
->withPaths([__DIR__ . '/src', __DIR__ . '/testes'])
->withPhpCsFixerSets(perCS20: verdadeiro, doutrinaAnnotation: verdadeiro);Adora os conjuntos de regras, mas deseja pular uma única regra ou alguns arquivos?
use SymplifyEasyCodingStandardConfigECSConfig;return ECSConfig::configure()
->withSkip([// pular regra únicaArraySyntaxFixer::class,// pular regra única em caminhos específicosArraySyntaxFixer::class => [__DIR__ . '/src/ValueObject/',
], // pula o diretório por absoluto ou * mask__DIR__ . '/src/Migrations',// pular diretórios por mask__DIR__ . '/src/*/Legado',
]);Você provavelmente não os usará, mas eles podem lhe dar mais controle sobre o processo interno:
use SymplifyEasyCodingStandardConfigECSConfig;use SymplifyEasyCodingStandardValueObjectOption;return ECSConfig::configure()// extensões de arquivo para scan->withFileExtensions(['php'])// configure caminhos de cache e namespace - útil, por exemplo, cache de CI do Gitlab, onde getcwd() produz sempre diferentes caminho->comCache(
diretório: sys_get_temp_dir() . '/_changed_files_detector_tests',
namespace: getcwd() // normalizado para separador de diretório)// imprime conteúdo com regras de indentação específicas->withSpacing(indentation: Option::INDENTATION_SPACES, lineEnding: PHP_EOL)// modifica execução paralela->withParallel(timeoutSeconds: 120, maxNumberOfProcess: 32, tamanho do trabalho: 20);Os valores mencionados são os padrão.
Você usa o ECS em vários projetos? Você deseja executá-los sempre da mesma maneira em cada um desses projetos? Vamos usar scripts do Composer
Este comando adiciona 2 scripts úteis ao seu composer.json :
scripts de fornecedor/bin/ecs
Execute-os sempre da mesma maneira - para verificar o código:
verificação do compositor-cs
Para aplicar correções, execute:
compositor fix-cs
Talvez você queira usar o ECS para gerar relatórios para ferramentas de terceiros.
Atualmente fornecemos formatadores para:
console : Impressão orientada a humanos à la PHP CS Fixer.
json : um blob JSON personalizado para ferramentas arbitrárias.
junit : formato JUnit para ser usado em diferentes ambientes de CI.
checkstyle : útil para relatórios de ação do Github.
gitlab : Para relatórios de qualidade de código Gitlab ou ferramentas Code Climate.
Para obter informações sobre como cada um deles se comporta, consulte suas respectivas implementações.
fornecedor/bin/ecs --clear-cache
verificadores de lista de fornecedor/bin/ecs
Você procura o formato json?
fornecedor/bin/ecs list-checkers --output-format json
Você usa outra ferramenta e deseja migrar? É bastante simples - aqui está "como fazer":
para PHP_CodeSniffer
e PHP CS Fixer.