Beruflich Dokumente
Kultur Dokumente
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 o cdigo, diminuir bugs.
Trmino de linha
Linhas devem terminar apenas com Linefeeds (LF) [\n] No usar Carriage Return (CR) [\r], padro Macintosh No usar a combinao (CR)(LF) [\r\n], padro Windows
<?php /** * [Descrio do arquivo]. * * [mais informaes precisa ter 1 [ENTER] para definir novo pargrafo] * * [pode usar quantas linhas forem necessrias] * [linhas logo abaixo como esta, so consideradas mesmo pargrafo] * * @package [Nome do pacote de Classes, ou do sistema] * @category [Categoria a que o arquivo pertence] * @name [Apelido para o arquivo] * @author [nome do autor] <[e-mail do autor]> * @copyright [Informaes de Direitos de Cpia] * @license [link da licena] [Nome da licena] * @link [link de onde pode ser encontrado esse arquivo] * @version [Verso atual do arquivo] * @since [Arquivo existe desde: Data ou Versao] */ ...
Nomenclaturas
Padro CamelCase
Definio
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)
SubDivises
lowerCamelCase - iniciado por letra Minscula
iPod, iMac
UpperCamelCase
Classes
Uploads, FileUploads, ImageFileUploads
lowerCamelCase
Variveis
$tmpQry, $objUpload, $arrUF, $iCount
Propriedades
$this ->tableName, $this ->fieldId, $this ->fields
Funes e Mtodos
$this->getName(), $this ->setFields(), $this ->getById()
UPPERCASE e _
Constantes
NOT_EXIST, OVERFLOW_MAX_SIZE, DB_HOST
Strings Literais
Se a string no contiver variveis de substituio, deve-se usar aspas simples.
$tmpStr = 'Exemplo de String';
Substituio de Variveis
Concatenao de Strings
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 UpperCamelCase. As chaves "{" e "}" 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 quatro espaos. S permitida uma classe por arquivo PHP.
/** * Bloco de Documentao */ class ClasseExemplo { /** * @access private * @var string */ private $_privada = null; /** * @access protected * @var int */ protected $protegida = 0; /** * @var string */ public $publica = null; /** * @static * @var string */ public static $publicaEstatica = null; // Qualquer contedo da classe // precisa ser identado com [Tab|4 espaos]. }
Nomear em lowerCamelCase Devem ser declaradas no topo da classe, antes de qualquer declarao de mtodos. No utilizar o identificador: var (php4) 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)
Nomear em lowerCamelCase. As chaves "{" e "}" 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 quatro espaos. Sempre declarar a visibilidade: private, protect ou public.
/** * Bloco de Documentao */ class Exemplo { protected $name = null; /** * Seta o um valor propriedade Name. * @access public * @param string $pValue Nome Completo */ public function setName( $pValue ) { // Qualquer contedo // precisa ser identado com [Tab|4 espaos]. } /** * Retorna o valor da propriedade Name. * @access public * @return string */ public function getName() { // Qualquer contedo // precisa ser identado com [Tab|4 espaos]. } }
Estruturas de Controle
if / else / elseif
Usar espao simples depois do "(" e antes do ")" da condiao no IF e no ELSEIF 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 quatro espaos.
if ( $intValor == 1 ) { // Qualquer contedo // precisa ser identado } elseif ( ( $intValor == 2 // Qualquer contedo // precisa ser identado } else { // Qualquer contedo // precisa ser identado }
while/for/foreach
Usar espao simples depois do "(" e antes do ")" da expresso. 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 quatro espaos.
switch/case
Usar espao simples depois do "(" e antes do ")" 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 quatro espaos. Qualquer cdigo dentro de: case e default, precisa ser identado com quatro espaos, inclusive a palavra reservada: break.
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]. }
10
Licena
Este contedo est sob a licena Creative Commons: BY-NC-SA.
o Sendo permitido:
copiar, distribuir, exibir e executar a obra. criar obras derivadas. Atribuio. Voc deve dar crdito ao autor original, da forma especificada pelo autor ou licenciante. Uso No-Comercial. Voc no pode utilizar esta obra com finalidades comerciais. Compartilhamento pela mesma Licena. Se voc alterar, transformar, ou criar outra obra com base nesta, voc somente poder distribuir a obra resultante sob uma licena idntica a esta. Para cada novo uso ou distribuio, voc deve deixar claro para outros os termos da licena desta obra. Qualquer uma destas condies pode ser renunciada, desde que Voc obtenha permisso do autor. Nada nesta licena prejudica ou restringe os direitos morais do autor. Ao adotar este padro em alguma instituio informar ao autor atravs do e-mail: walkeralencar@gmail.com ou contato@walkeralencar.com, para ser referenciado no site, isso engrandee o trabalho j realizado e incentiva continuidade de outros mais.
o Anexo:
11
Referncia
Zend Framework: Coding Standards for PHP PEAR Coding Standards Drupal Coding Standards Coding Standards for CakePHP eZ Coding Standards for PHP Wikipedia: CamelCase