elavora / code-standards
Regras de formatação e estilo da Elavora: PHP-CS-Fixer (PER-CS), EditorConfig e lint de sintaxe PHP
Requires
- php: >=8.3
Requires (Dev)
- phpunit/phpunit: ^12.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-25 15:03:44 UTC
README
Regras de formatação e estilo compartilhadas pelos projetos PHP da Elavora, distribuídas como o pacote Composer
elavora/code-standards.
O pacote traz três coisas:
- a configuração do PHP-CS-Fixer, no padrão PER-CS, sem regras risky;
- o
.editorconfigbase (indentação, fim de linha, espaços no fim da linha...), que um comando do pacote copia para a raiz do projeto; - o lint de sintaxe PHP (
elavora-standards lint, a partir da 1.1.0), que rodaphp -lnos arquivos do projeto e substitui otools/lint.phpque cada projeto copiava.
Por que um pacote
As regras mudam pouco, mas mudam. Como elas são uma dependência Composer comum, o Dependabot abre um PR em cada projeto quando sai uma versão nova, do mesmo jeito que faz com o PHPUnit ou com qualquer outra dependência. Ninguém precisa lembrar de copiar arquivos de um repositório para outro.
O pacote entrega as regras e o lint, que só precisa do próprio PHP. As ferramentas de formatação (o
php-cs-fixer e o editorconfig-checker) vêm na imagem
ghcr.io/elavora/php-dev, usada no devcontainer e no CI, para que o editor e o CI rodem a mesma versão
(veja Elavora/devcontainers).
Elavora/code-standards → regras (este pacote, no require-dev de cada projeto)
Elavora/devcontainers → imagem php-dev com php-cs-fixer 3.95.27 e editorconfig-checker 4.0.2
Elavora/.github → workflow de qualidade do CI, que usa as regras e as ferramentas
Uso em poucos passos
-
Instale o pacote como dependência de desenvolvimento:
composer require --dev elavora/code-standards
-
Acrescente ao
composer.jsondo projeto os scripts que mantêm o.editorconfigem dia:"scripts": { "post-install-cmd": ["Elavora\\CodeStandards\\Composer::sync"], "post-update-cmd": ["Elavora\\CodeStandards\\Composer::sync"] }
-
Rode
composer install. O pacote cria o.editorconfige o.php-cs-fixer.dist.phpna raiz do projeto. Commite os dois. -
Opcional: ligue o lint de sintaxe no script
lint, que o CI de qualidade roda (o pacote precisa estar em^1.1):"scripts": { "lint": "elavora-standards lint" }
Depois disso, php-cs-fixer fix (no devcontainer) formata o projeto com as regras da Elavora, e composer lint
confere a sintaxe de todos os arquivos PHP. O passo a passo
completo, com o que fazer quando o projeto já tem esses arquivos, está em docs/adocao.md.
Documentação
Leia nesta ordem:
- Adoção num projeto: instalação, os scripts do
composer.json, o que commitar e como as atualizações chegam. - Configuração do PHP-CS-Fixer: as regras, quais arquivos são formatados, por que o pacote
não depende do
friendsofphp/php-cs-fixere como um projeto ajusta uma regra. - EditorConfig e o comando
sync: o.editorconfigbase, o bloco gerado, o que acontece quando o projeto já tem um.editorconfige a referência do comandovendor/bin/elavora-standards. - Lint de sintaxe PHP: o subcomando
lint, quais arquivos ele confere, como mudar as pastas, a saída, os códigos de saída e a migração dotools/lint.php. - Integração com o CI: o contrato que o workflow de qualidade do
Elavora/.githubusa. - Desenvolvimento deste repositório: estrutura, testes, CI, release, Dependabot e a publicação no Packagist.
Licença
MIT. Veja LICENSE.