O PHP Framework Interoperability Group é um grupo formado por membros com poder de voto e que representam frameworks PHP e membros não votantes que podem participar e que definiu, até o momento, três padrões: PSR-0, PSR-1 e PSR-2.

A norma PSR-0, dita a respeito de autoloader. A PSR-1, de normas básica de códificação e a PSR-2, vai além e do básico de normatização do PSR-1.

Como acessar o guia de estilos PSR

Via URL, através de

Via Git, recomendo

git clone git://github.com/php-fig/fig-standards.git

Como acessar as normas de codificação dos membros dos grupos do PHP-FIG

Seguir ou não seguir as PSR?

Em primeiro lugar, se você trabalha para um grupo, não só os que fazem parte do PHP-FIG, como qualquer outro, deveria seguir os padrões do seu grupo. E se não concorda com tais padrões, procure convencer o seu grupo a mudá-los. Por exemplo, como eu contribuo com código para o (Joomla) JPlatform, tenho que seguir os padrões definidos nas normas de estilos do Joomla, que, embora tenha um representante no grupo do PHP FIG, há alguns pontos divergentes entre as PSR e o padrão do grupo ao qual proponho código.

Caso o seu grupo nem tenha um guia de normas de codificação, ou as regras que ele tenha sejam simples demais e não abordem todos os casos, sugiro que, por padrão, procure preencher as lacunas com as sugestões do PHP-FIG.

Se você é um programador independente, ou uma equipe pequena que faz pouca diferença como seu código vai ficar, ainda assim é uma boa ideia adotar esses padrões. Em especial para códigos novos. Ok que se for aplicálos a códigos que você já fez no passado, é perfeitamente possível que tenha que organizar até 50% de todas as linhas de código que já fez, algo que pode ser trabalhoso caso não use ou um editor para formatar seu código ao usar algum atalho de teclas ou alguma ferramenta para rever em batelada seus arquivos.

A vantagem em especial de seguir esses padrões é que, por eles serem tenderem a ser fortemente algo que é senso comum entre muitos programadores PHP que trabalham em equipes grandes, é muito provável que se desde já estiver fazendo código nestes padrões, você tenda a ser mais bem vindo como membro de uma equipe. Eventualmente pode fazer a diferença ao ser contratado.

Ferramentas que auxiliam a checar e/ou converter para os padrões

Linha de comando

Você pode usar o PHP_CodeSniffer que, configurado da forma certa, pode atender esses padrões. O brasileiro @klaussilveira disponibiliza em https://github.com/klaussilveira/phpcs-psr código para ajudar você nessa tarefa.

Se você quer algo específico para seu projeto, ou vai ter que configurar o PHPCS para ele, ou pegar um pronto. O Joomla, por exemplo disponibiliza uma ajuda em http://docs.joomla.org/Joomla_CodeSniffer. Outros projetos que fazem parte do PHP FIG, em especial os grandes, devem ter algo semelhante.

Interface Gráfica

Você pode usar o Jenkins, que alias ajuda até ao fazer tarefas automáticas, integrados ao seu repositório de código. Em http://jenkins-php.org/, é possível encontrar informações adicionais de como configurar ele com PHP.

Projetos específicos podem até permitir de visualização publica de testes como o Joomla faz em http://developer.joomla.org/pulls/, com ou sem o Jenkins.

IDEs

Qualquer IDE decente permite que o programador configure como quer que ela automaticamente estilize a aparência do código. Eu pessoalmente uso o Netbeans e não foi difícil ler os manuais e configurar nele como seguir os padrões, e creio que a IDE de sua preferência também permita isso. Certamente também o Eclipse (e seus derivados, como o Aptana), e até opções comerciais como o PHP Storm permitem fazer o mesmo.

comments powered by Disqus