Codificar é algo muito pessoal, assim como escrever um artigo. Uma rápida olhada e já podemos ter ideia de quem o escreveu
O programador leva para o projeto suas preferências pessoais na maneira de nomear funções, classes, variáveis, arquivos ou mesmo na forma de fazer um loop. Os mais experientes - ou organizados - criam padrões para manter uma consistência, e isso é excelente. O problema começa quando temos muitos programadores trabalhando nos mesmos códigos e cada um fazendo na sua maneira. Muitos projetos e empresas acabam adotando o seu padrão, que deve ser seguido por todos os envolvidos.
Temos então, cada projeto com sua forma e programar, que pode ser completamente diferente de outro. Podemos levar algumas horas somente para compreender a forma que está organizado. Isso é um problema que remonta desde o inicio da era da programação.
Uma das tentativas mais famosas de um padrão unificado foi proposta por Brian Kernighan e Dennis Ritchie (criadores da linguagem C) e descrito no livro C, a Linguagem de Programação: padrão ANSI, e ainda hoje muito usado.
■ Os padrões mais usados
Existem vários padrões usados pela comunidade PHP. Para aqueles que estão querendo adotar um, é bom ler o padrão do PEAR, que engloba desde nomes de arquivos e funções ate a forma de fazer um loop, uma array multi-dimensional ou mesmo uma documentação.
Existe tambem o utilizado pelo framework Zend, que é uma evolução do usado no PEAR para a realidade do framework. A vantagem de usar um desses é que eles já foram muito usados e “postos a prova”, até chegar num consenso.
Caso você esteja planejando usar um framework, opte por usar o padrão adotado por ele.
■ PHP Standards e o PHP 5.3
O PHP 5.3 traz novidades e que podem mudar muito a forma de como programamos hoje. O uso de namespace, lambda functions e outros podem bagunçar o código de qualquer um.
Não existe um padrão oficial para PHP. Por enquanto. Recentemente um grupo de desenvolvedores de varios frameworks, entre eles Symfony, Cake, Zend e se reuniram e criam um grupo para defenir esses padrões. Espera-se que todos os projetos existentes hoje como o PEAR, os frameworks, Wordpress, Drupal e Magento, alem dos novos, tenham uma mesma forma, principalmente agora com o advento do PHP 5.3.
A primeira versão esta disponível e o grupo estão abertos a discussões para a melhoria. Nesta versão está definido a forma que será usada os namespaces, a maneira de criar uma execeção ou a pegar e a nomenclatura para classes e interfaces.
■ Verificando os padrões
Sempre é bom termos certeza que estamos seguindo os padrões. Assim como temos os analisadores W3C para HTML, temos uma ferramenta para o nosso codigo PHP. É o PHP_CodeSniffer. Essa ferramenta analisa o codigo e retorna todos os erros de sematica de seu codigo, para o padrão que você quiser. Vale lembrar que ele não verifica erros de codigo, apenas de formatação.
■ Um exemplo de uso seria:
$ phpcs /path/to/code/myfile.php
FILE: /path/to/code/myfile.php
--------------------------------------------------------------------------
FOUND 5 ERROR(S) AND 1 WARNING(S) AFFECTING 5 LINE(S)
--------------------------------------------------------------------------
2 | ERROR | Missing file doc comment
20 | ERROR | PHP keywords must be lowercase; expected "false" but found
| | "FALSE"
47 | ERROR | Line not indented correctly; expected 4 spaces but found 1
47 | WARNING | Equals sign not aligned with surrounding assignments
51 | ERROR | Missing function doc comment
88 | ERROR | Line not indented correctly; expected 9 spaces but found 6
---------------------------------------------------------------------------
■ Faça do seu jeito
Muitas vezes pegamos codigos de outros programadores, que não seguiram o padrão ou mesmo não tem um padrão. Alterar todo o projeto manualmente pode se tornar algo muito dispendioso e chato. Para facilitar nossa vida, existe o PHP_Beautifier. Ele reformata todo o codigo para a forma defenida por voce.
A linha abaixo reformata no padrão PEAR e indenta 2 tabs.
--------------------------------------------------------
php_beautifier -t2 -l "Pear()" index.php index_pear.php
--------------------------------------------------------
FONTE: PHP-ZINE.