PHP

O que são as PSRs do PHP

O que são as PSRs do PHP - A linguagem de programação PHP, assim como outras linguagens, permite que os desenvolvedores escrevam código de diversas maneiras possíveis. Essa característica é até interessante, pois garante mais liberdade para os desenvolvedores, porém isso também pode ser um problema.

O que são as PSRs do PHP – A linguagem de programação PHP, assim como outras linguagens, permite que os desenvolvedores escrevam código de diversas maneiras possíveis. Essa característica é até interessante, pois garante mais liberdade para os desenvolvedores, porém isso também pode ser um problema.

A diferença no modo como os desenvolvedores escrevem código pode gerar uma verdadeira salada de frutas dependendo do tamanho da equipe e quantas pessoas já passaram no projeto ao longo do tempo.

Baseado nisso muitas linguagens e tecnologias definem recomendação de padrões. No PHP essas recomendações são criadas por um grupo chamado PHP-FIG e são chamadas de PSR.

PHP-FIG

PHP Framework Interop Group (PHP-FIG) é um grupo formado por desenvolvedores da comunidade PHP em 2009. O objetivo inicial do grupo era definir recomendações que fossem aplicadas aos Frameworks PHP participantes e facilitasse a interoperabilidade entre os frameworks que cresciam rapidamente.

Ao passar do tempo o grupo começou a perceber que as recomendações poderiam ser úteis em outros tipos de aplicações, não somente em frameworks, já que a linguagem PHP possui grandes CMSs como WordPress, Magento, Drupal, Joomla e diversos outros. Com isso o grupo ganhou membros também de outros tipos de projetos, não somente Frameworks.

As recomendações precisam ser votadas e aprovada pelos membros do PHP-FIG para que possam ter validade. Somente membros podem votar, porém qualquer desenvolvedor da comunidade que queira participar das discussões pode, basta entrar nos canais de contato do PHP-FIG.

PSR

As recomendações criadas pelo PHP-FIG são agrupadas em PHP Standard Recommendation (PSR). Uma PSR basicamente possui recomendações sobre um tema específico, como por exemplo, a PSR-12 que fala sobre padronização de sintaxe de código.

Cada PSR é identificada por um número e possui um status. O status nos ajuda a saber se devemos ou não seguir as recomendações daquela PSR:

  • Rascunho – enquanto uma PSR está em discussão e construção ela é definida como rascunho;
  • Aceito – quando uma PSR é votada e aprovada o status dela passa para aceita;
  • Descontinuada – se por algum motivo depois de aceita aquela PSR não é mais relevante ela é descontinuada;
  • Abandonada – quando o rascunho de uma PSR não é aceito, ela passa para o estado abandonada e é mantida por questão de documentação.

Existem PSRs que tratam de diversos temas como: estilo de código, autoload, cache, log, HTTP e outros. É possível ver a lista de PSRs e seus estados no site do PHP-FIG.

RFC

Assim como o PHP-FIG se propôs a discutir recomendação de padrões para a linguagem PHP, existem outros grupos que definem recomendações para diversos tipos de processos que acontece na internet. Esses grupos criam documentos técnicos chamados de Request For Comments (RFC), em português requisição para comentários. As RFCs possuem um funcionamento muito parecido com as PSRs, inclusive o processo de criação das PSRs é inspirado no processo de criação das RFCs.

As PSRs usam RFCs dentro de suas recomendações. Elas são usadas tanto como base para padronização de alguma recomendação, quanto para orientar o requerimento de uma recomendação.

Nível de requerimento

A RFC mais importante para conseguirmos interpretar corretamente as recomendações das PSRs é a RFC 2119. Ela padroniza os níveis de requerimento de uma determinada recomendação.

Podemos dividir os níveis de requerimentos em:

  • Deve – representado pelas palavras (MUST, REQUIRED e SHALL)
  • Não deve – representado pelas palavras (MUST NOT e SHALL NOT)
  • Recomendado – representado pelas palavras (SHOULD e RECOMMENDED)
  • Não recomendado – representado pelas palavras (SHOULD NOT e NOT RECOMMENDED)
  • Opcional – representado pelas palavras (MAY e OPTIONAL)

Vamos pegar um exemplo prático para entender o nível de requerimento. A PSR-1 que fala sobre padrão básico de codificação tem a seguinte recomendação:

Files MUST use only <?php and <?= tags.

Em português ficaria: arquivos DEVEM usar somente as tags <?php e <?= .

O nível de requerimento é representado por uma das palavras listadas na RFC2119, ele nos ajuda a entender quando devemos ou não seguir uma recomendação dentro de uma PSR. No exemplo acima nós DEVEMOS usar somente essas duas tags se quisermos dizer que nosso código segue a PSR-1.

PSR-1 e PSR-12

As duas primeiras PSRs que aconselho estudar são: a PSR-1 e a PSR-12. A primeira fala sobre padronização básica do nosso código e a segunda fala sobre o estilo como o código é escrito. A PSR-12 substituiu e estendeu a PSR-2, que precisou ser revisada devido a avanços na linguagem de programação PHP.

Nos próximos artigos vamos falar sobre essas duas importantes PSRs. Fique atento em nosso blog e redes sociais.