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 :)