Desenvolvedores que contribuem para o projeto devem seguir algumas regras.

Commits

Alguns contribuintes têm direito de commit no repositório do symfony. Neste caso, trabalham em um braço do código, e o merge é feito pelo lead do time de desenvolmento antes dos releases maiores.

  • Sempre fazer commits granulares, cada um relacionamdo a um caracteristica especifica. Não misturar modificações não relatadas em um commit, de modo a tornar o debug (e a reversão) fácíl.
  • Usar uma frase descritiva para seu commit, com verbos no passado. Todos os desenvolvedores devem entender o que isto faz e por quê, e isto deve ser curto.
  • Sempre prover a unidade de teste para validar o código do seu commit.
  • Sempre documentar as funções e metodos que adicionou ou modificou (usando phpdoc).
  • Para commits para um branch, prefixe a commit message com o nome do branch. Por exemplo: "rovert: fixed trouble."
  • Se o seu commit fecha um ticket no bug tracker, comece sua mensagem commit com o texto "Fixed #abc", onde "abc" é o numero do ticket do seu fix.

Práticas de codificação

  • Nunca use tabulação no código. A indentação é feita com 2 espaços.
  • Não coloque espaço depois de abrir ou fechar parênteses.
     if ($reqvalue == _getRequestValue($name))    correto
     if ( $reqvalue == _getRequestValue($name) )  incorreto
    
  • Use camelCase, não underscores, para variáveis, funções e nome de métodos, exceto para nome de funções helpe.
  • As chaves devem sempre ficar em suas próprias linhas.
  • Use chaves para indicar o corpo de estrutras de controle não importando o número de declarações que ela contenha.
  • Não termine as bibliotecas com a usal tag de encerramento ?>. Isto é porque isto não é realmente necessario, e porque isto pode criar problemas na saida se você tiver espaço em branco após esta tag.
  • No corpo da função, indicações de retorno devem ter uma linha em branco antes dela para aumentar a legibilidade.
    function fooFunction()
    {
      if (condition2 || condition3)
      {
        statement1;
        statement2;
    
        return 1;
      }
      else
      {
        defaultaction;
      }
    
      return null;
    }
    
  • Todas as uma linhas de comentários devem estar em suas próprias linhas e neste formato.
      // espaçar primeiro, sem nenhum full stop`
    
  • Evite avaliar variáveis dentro de strings, opte pela concatenação
       $string = 'something';
       $new_string = "$string is awesome!";   // bad, not awesome
       $new_string = $string . ' is awesome!' // better :)