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.