O que é PSR?

Este é o primeiro post aqui no PHP para Todos e o assunto que eu escolhi são as PSRs, algo que todo desenvolvedor PHP deve conhecer mas que no entanto muitos ainda desconhecem, sendo assim, eu tentarei de forma bem clara explicar o que significa PSR e por que conhece-las é extremamente importante.

As PSRs (PHP Standards Recommendations) são recomendações de especificações para desenvolvimento de componentes/bibliotecas e interfaces PHP.

Estas especificações são elaboradas pelo FIG (Framework Interpor Group) que é composto por desenvolvedores ligados aos principais projetos PHP como Zend Framework, Symfony, Doctrine, Laravel, SugarCRM, Composer, Propel, Phalcon, phpBB, entre outros.

PSR Os elefantes vão dominar o mundo - Site do FIG
Os elefantes vão dominar o mundo – Site do FIG

O objetivo principal do FIG é elaborar estas especificações para que os componentes/bibliotecas e interfaces possuam uma interoperabilidade maior entre si, criando assim um padrão para desenvolvimento PHP incluindo padrão de codificação.

É importante ressaltar que estes padrões não são imposições e sim recomendações, ou seja, um projeto não é obrigado a usa-las e caso decida por não usar ele estará perdendo a compatibilidade com componentes de outros projetos que poderiam ser reaproveitados.

Um exemplo

Imagine uma situação onde é utilizado o Zend Framework 2 mas por algum motivo o componente Zend\Log não é satisfatório e os desenvolvedores optam por usar o componente de logging de outro framework. Se este outro framework seguir a PSR-3, o componente de Log dele poderá ser utilizado neste projeto sem causar danos ao que já foi desenvolvido.

Existe alguma PSR aprovada atualmente?

Sim nobre desenvolvedor, veja abaixo a lista de PSRs aprovadas atualmente (no momento da edição deste post):

PSRs aprovadas

  • PSR-0 – Esta PSR diz respeito à padronização de autoload. Mas cuidado, esta PSR está marcada como deprecated, ou seja, não se recomenda mais utiliza-la por existir outra PSR que trata do mesmo tema e é mais abrangente.
  • PSR-1 – Padrão básico de codificação – Como um desenvolvedor deve no mínimo organizar o seu código
  • PSR-2 – Guia de Estilo de codificação – Abrange o PSR-1 e visa diminuir o atrito na leitura de código escritos por equipes de diferentes projetos
  • PSR-3 – Descreve uma interface comum para bibliotecas de Logging
  • PSR-4 – É uma PSR mais abrangente que a PSR-0 mas mantém compatibilidade com ela
  • PSR-7 – Descreve uma interface comum para representação de mensagens HTTP

PSRs em Revisão

  • PSR-6 – Descreve uma interface comum para bibliotecas de Caching

PSRs em Desenvolvimento

  • PSR-5 PHPDoc
  • PSR-8 Huggable Interface (Não consegui traduzir o termo “huggable” para português)
  • PSR-9 Divulgação de Segurança (Como informar o público sobre vulnerabilidades descobertas)
  • PSR-10 Alertas de Segurança
  • PSR-11 Descreve uma interface para Côntaineres de Injeção de Dependência
  • PSR-12 Extende o PSR-2 e o PSR-1

Quem pode propor e votar para aprovação ou reprovação de uma PSR?

Como eu disse acima, os membros são compostos de representantes de projetos PHP bastante usados no mercado, logo estes membros participam das atividades do FIG.

Existe também a possibilidade de ser um membro mas que no entanto não tem poder de voto.

Considerações finais

Espero ter atingido o objetivo e o artigo tenha ficado claro, Se você está começando nessa vida de desenvolvedor, talvez tenha estranhado alguns termos que não sejam triviais, mas não precisa se preocupar, com o tempo tudo vai ficando mais claro.

Gostou deste artigo? Recomende-o aos seus amigos e caso ainda não tenha feito, cadastre-se em nossa mailing list usando o formulário abaixo e receba as novidades por e-mail.

Não se preocupe, eu odeio SPAM o tanto quanto você :)



Adler Medrado

Eu sou um programador e consultor independente que vive em Guarapuava, Paraná, Sul do Brasil, de onde trabalho remotamente principalmente usando PHP, apesar de conhecer diversas outras tecnologias. Sou marido e pai que busca viver uma vida simples e justa com minha família. Eu também sou um entusiasta de open-source, Zend Certified Engineer para PHP 5, PHP 5.3 e Zend Framework.

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle PlusYouTube

O que é PSR?
Tagged on:                     

10 thoughts on “O que é PSR?

    • 12 de novembro de 2015 at 22:52
      Permalink

      Obrigado pelo seu comentário Nilton, fico feliz que tenha gostado.
      Um abraço.

      Reply
  • 12 de novembro de 2015 at 15:25
    Permalink

    Eu não sou programador e me pareceu um excelente artigo para começar. Aguandando o próximo. Parabéns pelo compartilhamento de informação.

    Reply
    • 12 de novembro de 2015 at 22:52
      Permalink

      Obrigado pelo feedback, Arthur.
      O objetivo principal é este: ajudar quem tiver interesse a começar.

      Grande abraço.

      Reply
  • Pingback: Por que usar PHP? | PHP para Todos

  • 15 de novembro de 2015 at 01:51
    Permalink

    Parabéns pelo artigo!
    Ficou fácil de entender pra mim que estou começando com PHP.

    Reply
    • 15 de novembro de 2015 at 02:14
      Permalink

      Legal Josué, seu comentário é importante para mim.
      Um grande abraço e obrigado.

      Reply
  • 16 de novembro de 2015 at 12:46
    Permalink

    Parabéns pelo artigo, bem claro e objetivo, como você mesmo disse, muitos desenvolvedores desconhecem os PSRs.

    Reply
    • 16 de novembro de 2015 at 20:16
      Permalink

      Valeu Alisson, que bom que gostou.
      Realmente é um tema muito importante que não é muito abordado.

      Abraço.

      Reply
  • Pingback: PHP para Todos | Adler's Blog

Deixe uma resposta

%d blogueiros gostam disto: