Sie sind auf Seite 1von 11

Manual para padronizao de cdigo W7BR

2010 W7BR Solues e Tecnologia








MANUAL DE PADRONIZAO DE CODIFICAO
PHP CODING STANDARDS

verso 1.0



W7BR Solues e Tecnologia
contato@w7br.com

Manual para padronizao de cdigo W7BR
2010 W7BR Solues e Tecnologia
Sumrio
INTRODUO ................................................................................................................................ 3
Observao ................................................................................................................................ 3
FORMATO DO ARQUIVO PHP ........................................................................................................ 4
Identao ................................................................................................................................... 4
Codificao do Arquivo ............................................................................................................. 4
NOMENCLATURAS ......................................................................................................................... 5
Padro CamelCase ..................................................................................................................... 5
UpperCamelCase ....................................................................................................................... 5
LowerCamelCase ....................................................................................................................... 5
UPPERCASE ................................................................................................................................ 5
ESTILO DE CDIGO (Coding Style) ................................................................................................. 6
Demarcao de Cdigo PHP ...................................................................................................... 6
Strings Literais ........................................................................................................................... 6
Strings Literais com Apstrofos ................................................................................................. 6
Substituio de Variveis e Concatenao de Strings ............................................................... 6
Classes ....................................................................................................................................... 6
Variveis de Classes (Propriedades) .......................................................................................... 7
Funes e/ou Mtodos ............................................................................................................. 8
Estruturas de Controle .............................................................................................................. 8
Array ........................................................................................................................................ 10
Erros ........................................................................................................................................ 10
REFERNCIAS ............................................................................................................................... 11


Manual para padronizao de cdigo W7BR
2010 W7BR Solues e Tecnologia
INTRODUO
Como escrever um cdigo organizado, bem estruturado e documentado
Melhorando visibilidade e facilitando futuras manutenes e implementaes.
Um bom padro de codificao importante em qualquer projeto de
desenvolvimento, principalmente quando envolve vrios desenvolvedores.
Assegurar a Alta Qualidade do cdigo, diminuir bugs.
Observao
Esse manual baseado no PHP Coding Standards do Walker de
Alencar;
Alguns modificaes foram realizadas se adequando nossa realidade;
Foram acrescentado outros itens que achamos importantes.
Todos o resto foi mantido, assim como a formatao mais prxima
existente no material base e sua licena.




Manual para padronizao de cdigo W7BR
2010 W7BR Solues e Tecnologia
FORMATO DO ARQUIVO PHP
Identao
Tab com tamanho de 4 espaos.
Codificao do Arquivo
UTF-8;

Manual para padronizao de cdigo W7BR
2010 W7BR Solues e Tecnologia
NOMENCLATURAS
Padro CamelCase
a denominao em ingls para a prtica de escrever palavras
compostas ou frases, onde cada palavra iniciada com Maisculas, e
unida sem espaos.
um padro largamente utilizado em diversas linguagens de
programao, como Java, Ruby e Python, principalmente nas definies
de Classes e Objetos. (Fonte: wikipedia.com)
Divises: lowerCamelCase ( iPod, iPhone ) e UpperCamelCase (
OpenOffice, StarTrek )
UpperCamelCase
Classes
O nome da classe dever conter primeiramente o cls que
identifica que uma classe, seguido do nome Representativo da
classe. O nome Representativo definido sobre os objetivos e
atividades que a classe exercer, os mesmo devem seguir o
padro UpperCamelCase. Ex.: clsBancoDados; clsEnviarArquivo.
LowerCamelCase
Variveis
$isRoot, $itensCarrinho
Propriedades
$this->caminhoUpload, $this->nomeCompleto
Funes e Mtodos
this->CalculaFrete(), $this->GeraMiniatura(), ContaPalavras( $frase )
UPPERCASE
Contantes
ORM_SERVIDOR, BASE_UPLOAD, URL_API

Manual para padronizao de cdigo W7BR
2010 W7BR Solues e Tecnologia
ESTILO DE CDIGO (Coding Style)
Demarcao de Cdigo PHP
No usar short_tags(<? E <?=)
Usar tags completas (<?php e <?php echo )
Strings Literais
Se a string no contiver variveis de substituio, deve-se usar aspas
simples.
$tmpStr = 'Exemplo de String';
Strings Literais com Apstrofos
Pode-se usar aspas simples, mas recomendado o uso de aspas
duplas para evitar slashes [\]
$tmpSql = SELECT id, nome FROM cliente WHERE name='Walker';
Substituio de Variveis e Concatenao de Strings
Usar aspas simples.
Usar espao antes e depois do operador ".", melhorando assim a
visibilidade.
$tmpStr = Exemplo . $de . String com . $variavel;
Quando concatenar mais de uma string longa, alinhe o operador "."
abaixo do operador "=".
$tmpSql = 'SELECT id,nome '
. 'FROM cliente '
. WHERE name = Walker' ";
Classes
Nomear em clsUpperCamelCase.
As chaves "{" vir na linha frente do nome da classe e o "}" viro na linha
abaixo do nome da Classe.
Toda classe deve ter um bloco de documentao em conformidade com
o Padro do PHPDocumentor.
Qualquer cdigo dentro da classe precisa ser identado com um TAB.
S permitida uma classe por arquivo PHP.
Manual para padronizao de cdigo W7BR
2010 W7BR Solues e Tecnologia
/**
* Envia E-mail conectando num servidor SMTP.
*
* @author Cleyton Ferrari <cleyton@w7br.com>
* @copyright 2009 W7Br Solues
* @license http://www.w7br.com
* @version 1.1
*/
class W7br_SMTP {
/* Ensinar ao Mr. M como fazer Mgica aqui. */
}
Variveis de Classes (Propriedades)
Nomear em _lowerCamelCase.
Devem ser declaradas no topo da classe, antes de qualquer declarao
de mtodos.
Sempre declarar sua visibilidade: private, protected ou public.
Preferencialmente no utilizar declarao de variveis de classes como
public, para incentivar o uso de (set/get)
Se a propriedade for a chave primria ou chave estrangeira de uma
entidade do banco de dados, devera ser adicionado um _id no final de
sua nomenclatura, ex: _chavePrimaria_id; _chaveEstrangeira_id;
_campoSimplesBD;
/**
* Envia E-mail conectando num servidor SMTP.
*
* @author Cleyton Ferrari <cleyton@w7br.com>
* @copyright 2009 W7Br Solues
* @license http://www.w7br.com
* @version 1.1
*/
class W7br_SMTP {
/* Ensinar ao Mr. M como fazer Mgica aqui. */
private $_servico_id;
function setServico_id ($value) {
$this->_servico_id = $value;
}
function getServico_id(){
return $this->_servico_id;
}
Manual para padronizao de cdigo W7BR
2010 W7BR Solues e Tecnologia
private $_nome;
function setNome ($value) {
$this->_nome = $value;
}
function getNome(){
return $this->_nome;
}
}

Funes e/ou Mtodos
Nomear em UpperCamelCase.
As chaves "{" vir na linha frente do nome da Funo/Mtodo e o "}"
viro na linha abaixo do nome da Funo/Mtodo.
Toda Funo/Mtodo deve ter um bloco de documentao em
conformidade com o Padro do PHPDocumentor.
Qualquer cdigo dentro da Funo/Mtodo precisa ser identado com um
TAB.
Sempre declarar a visibilidade: private, protect ou public.
/**
* Conta quantas palavras tem na frase e retorna a quantidade.
* @param string $frase texto que ter as palavras contadas
* @return int quantidade de palavras que o texto possui
*/
function contaPalavras( $frase ){
/* Mgica aqui. */
}
Estruturas de Controle
if / else / elseif
A chave "{" vir na linha da declarao da condio e a chave "}"
vir na linha abaixo da ltima linha de contedo.
Qualquer cdigo entre as chaves "{" e "}" precisa ser identado
com um TAB.
Sempre dever utilizar as { e } mesmo que a condio tenha
somente uma linha.
O else e elseif devero ficar logo aps a chave de fechamento }
if( ( $root === true ) && ( $totalDinheiro >= 100 ) ){
echo "Voc Rei. Ainda est rico, paga um churrasco?";
Manual para padronizao de cdigo W7BR
2010 W7BR Solues e Tecnologia
} elseif( ( $root === true ) && ( $totalDinheiro < 100 ) ){
echo "Voc Rei. Mas est probrinho heim.";
} else {
echo ", que diaxo voc ?";
}
Operador Ternrio ( ?: )
S dever ser usado para uma condio, para mais condies
use if/elseif/else
Toda a expresso devera ficar somente e uma linha.
$a = $root == true ? "Voc Rei." : "Voc no Rei";
while/for/foreach
A chave "{" vir na mesma linha da expresso, a chave "}" vir na
linha abaixo da ltima linha de contedo.
Qualquer cdigo entre as chaves "{" e "}" precisa ser identado
com um TAB.
while(!feof($hFile)){
// Qualquer contedo
// precisa ser identado com [Tab|4 espaos].
}
for($intCount = 0; $intCount <= 10; $intCount++){
// Qualquer contedo
// precisa ser identado com [Tab|4 espos].
}
foreach($arrList as $mixKey => $mixValue){
// Qualquer contedo
// precisa ser identado com [Tab|4 espaos].
}

switch/case
Sempre dever ter o default
A chave "{" vir na linha da expresso, a chave "}" vir na linha
abaixo da ltima linha de contedo;
Qualquer cdigo entre as chaves "{" e "}" precisa ser identado
com um TAB;
Qualquer cdigo dentro de: case e default, precisa ser identado
com um TAB, inclusive a palavra reservada: break.
Manual para padronizao de cdigo W7BR
2010 W7BR Solues e Tecnologia
switch($intNivel){
case 1:
// Qualquer contedo
// precisa ser identado com [Tab|4 espaos].
break;
case 2:
// Qualquer contedo
// precisa ser identado com [Tab|4 espaos].
break;
default:
// Qualquer contedo
// precisa ser identado com [Tab|4 espaos].
}
Array
Quando os ndices no forem numricos, dever seguir o padro
lowerCamelCase
$equipe = array( "silasRibas" => "Silas Ribas Martins", "rodrigoAlves" =>
"Rodrigo Alves" );
Include e Require
Usar include_once ou require_once somente
Dever conter parnteses na chamada
require_once ("SkySoft/SMTP.php");
Erros
Devero ser expostos somente em desenvolvimento, aps o
desenvolvimento na verso final devero ser usado do
error_reporting(0);
Usar Excees exaustivamente


Manual para padronizao de cdigo W7BR
2010 W7BR Solues e Tecnologia
REFERNCIAS
Appendix B. Zend Framework Coding Standard for PHP
http://framework.zend.com/manual/en/coding-standard.html
PEAR Manual
http://pear.php.net/manual/en/standards.classdef.php
CamelCase
http://pt.wikipedia.org/wiki/CamelCase
PHP Coding Standards ( Walker de Alencar )
http://blog.walkeralencar.com/archives/11

Das könnte Ihnen auch gefallen