Que Que Significa Psr - O que significa PSR no WhatsApp? Guia completo das principais siglas - F 24
O que significa PSR no WhatsApp? Guia completo das principais siglas - F 24

O que é PSR no universo PHP

PSR significa PHP Standards Recommendations, que é uma coleção de especificações técnicas definidas pelo PHP-FIG (Framework Interop Group). O grupo nasceu em 2009 com o objetivo de reduzir a fragmentação do ecossistema PHP, criando padrões que frameworks e bibliotecas diferentes pudessem seguir em comum.

que que significa psr e por que todo mundo fala disso

Muita gente que está começando no PHP esbarra em PSR sem entender muito bem o que está lendo. Quando você vê um comentário no GitHub dizendo "este pacote não segue PSR-12", não se trata de uma preferência estética — é sobre interoperabilidade. Código que respeita esses padrões consegue ser autenticado por ferramentas como o PHP_CodeSniffer, integrado a pipelines de CI/CD e lido por desenvolvedores de projetos diferentes sem atrito. As PSRs mais relevantes na prática são: PSR-1 (estilo básico de código), PSR-4 (autoloading de classes), PSR-12 (formatação avançada) e PSR-12 (formatação estendida do PSR-2). A PSR-12 foi lançada em 2019 como evolução do PSR-2 e atualmente é o padrão mais adotado por ferramentas modernas como o PHP CS Fixer.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Existe também a PSR-7 (HTTP Message Interface), que padronizou como requisições e respostas são tratadas. A adoção da PSR-7 permitiu que o Symfony HttpFoundation e o Laravel iluminati compartilhassem a mesma base conceitual para manipulação de requests HTTP. No dia a dia, usar o composer com o pacote friendsofphp/php-cs-fixer ou o php-fig/fig-standards já resolve boa parte da aplicação automática. Rodar php-cs-fixer fix --rules=@PSR12 na raiz do projeto corrige a maioria dos desvios em segundos, desde que os arquivos não tenham formatação muito extrema fora do padrão.

O problema que eu encontrei com mais frequência aconteceu quando migrei um projeto legado que usava a velha convenção de autoload do Zend Framework 1. A PSR-4 exige que cada namespace corresponda a um diretório, e o autoloaders antigo mapeava classes com sublinhados duplos e prefixos arbitrários. O workaround que funcionou foi criar um arquivo autoload.php temporário com um mapeamento manual via spl_autoload_register, usar o Composer no modo composer install --no-dev para gerar o dump-autoload compatível, e só depois refatorar as classes uma a uma para o namespace correto. Fazer o contrário — converter tudo de uma vez — gerava erros em cascata porque algumas dependências externas esperavam os nomes antigos das classes. Um detalhe que poucos mencionam: a PSR-4 não impõe regras de nomeação de classes, apenas de mapeamento arquivo-classe. Ou seja, você pode chamar sua classe de user_data_handler e o autoload vai funcionar desde que o arquivo esteja no lugar certo. A nomenclatura em PascalCase é conselho do PSR-1, não obrigação do PSR-4.

O principal limitante do PSR é que ele não resolve problemas de arquitetura. Um projeto mal estruturado que segue PSR-12 continua sendo um projeto mal estruturado. Padrão de formatação não substitui Separação de responsabilidades, testes unitários ou design de domínio. Para projetos novos, a recomendação prática é: iniciar com composer init, adicionar phpstan/phpstan e friendsofphp/php-cs-fixer como dependências de desenvolvimento, configurar um arquivo .php-cs-fixer.php com regras @PSR12, e rodar o fixer antes de cada commit via git hook. Isso elimina 90% das discussões desnecessárias sobre formatação no code review.