Changes between Initial Version and Version 1 of WF/PadroesdeCodificacaoPHP


Ignore:
Timestamp:
08/13/07 16:29:04 (17 years ago)
Author:
viani
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WF/PadroesdeCodificacaoPHP

    v1 v1  
     1= PADRÕES DE CODIFICAÇÃO PHP = 
     2 
     3Os padrões de codificação abaixo são muito importantes para a legibilidade do código. Procure seguir fielmente o que está descrito neste documento, para que o seu código fique padronizado e possa ser lido por outras pessoas que venham a dar manutenção em seu processo. 
     4 
     5== Tags PHP == 
     6 
     7 * Usar <?php ?> para delimitar código PHP, pois é a forma mais portável de incluir código PHP em diferentes sistemas operacionais e configurações.  
     8 
     9== Identação e comprimento de linha == 
     10 
     11 * Usar tabulação equivalente a 4 espaços. 
     12 
     13 * É recomendado que as linhas tenham entre 75-85 caracteres. 
     14 
     15== Comentários == 
     16 
     17 * Comentários (blocos) de documentação [wiki:WF/PHPDoc PHPDoc] são obrigatórios. 
     18 
     19 * Comentários não referentes a documentação são recomendados.  
     20 
     21 * Comentários estilo multi-linha (/* */) e linha única (//) são recomendados, ao passo que estilos Perl/shell (#) devem ser evitados. 
     22 
     23== Incluindo código == 
     24 
     25 * Usar require_once ao incluir incondicionalmente arquivos de classe. 
     26 
     27 * Usar include_once ao incluir condicionalmente arquivos de classe. 
     28 
     29 * require_once e include_once não são funções, portanto parênteses não devem envolver o nome do arquivo. 
     30 
     31== Convenções de nomenclatura == 
     32 
     33=== Classes === 
     34 
     35 * Devem ter nomes descritivos. Evitar usar abreviações. Nomes de classes devem começar com uma letra maiúscula. 
     36 
     37 * Exemplos: Classe, !MinhaClasse. 
     38 
     39=== Métodos e funções === 
     40 
     41 * Devem usar o padrão camel-case (Java). 
     42 
     43 * Exemplos: metodo, meuMetodo. 
     44 
     45 * Membros privados de classes são precedidos de um underscore. 
     46 
     47=== Constantes === 
     48 
     49 * Escritas em letras maiúsculas, com underscores separando palavras.  
     50 
     51 * Podem ser prefixadas com o nome da classe/pacote onde elas são usadas. 
     52 
     53 * As constantes true, false e null são exceções e devem ser escritas com letras minúsculas. 
     54 
     55=== Variáveis globais === 
     56 
     57 * Se o projeto precisar definir variáveis globais, seus nomes devem iniciar com um underscore seguido pelo nome do projeto e outro underscore. Por exemplo, o pacote PEAR usa uma variável global chamada $_PEAR_destructor_object_list. 
     58 
     59== Estruturas de controle == 
     60 
     61 * Incluem as instruções if, for, while, switch, etc. Segue abaixo um exemplo: 
     62 
     63{{{ 
     64    <?php 
     65 
     66      if((condition1)||(condition2)) 
     67      { 
     68        action1; 
     69 
     70      } 
     71      elseif((condition3)&&(condition4)) 
     72      { 
     73        action2; 
     74 
     75      } else{ 
     76 
     77        defaultaction; 
     78      } 
     79 
     80    ?> 
     81}}} 
     82 
     83 * Instruções de controle devem ter um espaço entre a palavra-chave e a abertura de parênteses, para distingui-los de chamadas de funções. 
     84 
     85 * É recomendado sempre usar chaves mesmo em situações onde elas são tecnicamente opcionais, pois aumentam a clareza da leitura e diminui a chance de erros lógicos serem introduzidos quando novas linhas forem adicionadas. 
     86 
     87 * Para instruções switch: 
     88 
     89{{{ 
     90 
     91    <?php 
     92 
     93    switch (condition) { 
     94        case 1: 
     95            action1; 
     96            break; 
     97 
     98        case 2: 
     99            action2; 
     100            break; 
     101 
     102        default: 
     103            defaultaction; 
     104            break; 
     105 
     106    } 
     107    ?> 
     108}}} 
     109 
     110== Chamadas de função == 
     111 
     112 * Devem ser feitas sem espaços entre o nome da função e os parênteses, e o primeiro parâmetro; espaços entre vírgulas e cada parâmetro, e sem espaço entre o último parâmetro e o parênteses e o ponto-e-vírgula. Segue um exemplo: 
     113 
     114{{{ 
     115    <?php 
     116 
     117    $var = foo($bar, $baz, $quux); 
     118 
     119    ?> 
     120}}} 
     121 
     122 * Como mostrado acima, deve haver um espaço entre a variável e o operador de atribuição e entre o operador e a chamada a função. Pode ser introduzidos mais espaços para aumentar a legibilidade. 
     123 
     124{{{ 
     125    <?php 
     126 
     127    $short         = foo($bar); 
     128    $long_variable = foo($baz); 
     129 
     130    ?> 
     131}}} 
     132 
     133== Definição de funções == 
     134 
     135 * Argumentos com valores padrão aparecem ao final da lista de argumentos. Exemplo: 
     136 
     137{{{ 
     138    <?php 
     139    function fooFunction($arg1, $arg2 = '') 
     140    { 
     141        if (condition) { 
     142            statement; 
     143        } 
     144        return $val; 
     145 
     146    } 
     147 
     148    ?> 
     149 
     150}}} 
     151 
     152== Definição de classes == 
     153 
     154 * A chave de abertura fica na linha inferior ao do nome da classe e a de fechamento fica na linha seguinte da última linha de código. 
     155 
     156{{{ 
     157    <?php 
     158 
     159    class Classe 
     160    { 
     161      /* código PHP */  
     162    } 
     163 
     164    ?> 
     165}}} 
     166 
     167== Créditos == 
     168 
     169[http://framework.zend.com/manual/en/coding-standard.html Esta página é baseada nos padrões de codificação do Framework Zend]