Академический Документы
Профессиональный Документы
Культура Документы
Este contedo est sob licena Creative Commons: BY-NC-SA. Reporte falhas e d sugestes, toda ajuda ser devidamente referenciada.
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.
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 nome do Autor ( dever ser curto, no composto e no dever conter caracteres especiais ) seguido do nome Representativo da classe, sendo agrupados usando o "_" ( underscore ). O nome Representativo definido sobre os objetivos e atividades que a classe exercer, os mesmo devem seguir o padro UpperCamelCase.
Skysoft_EmailSmtp, Skysoft_Upload
LowerCamelCase Variveis
$isRoot, $itensCarrinho
Propriedades
$this->caminhoUpload, $this->nomeCompleto
Funes e Mtodos
UPPERCASE Contantes
ORM_SERVIDOR, BASE_UPLOAD, URL_API
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 duplas. 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 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.
/** * Envia E-mail conectando num servidor SMTP. * * @author * @copyright Silas Ribas <silas@skysoft.com.br> 2009 SkySoft Brasil
6
SkySoft Libra
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) Funes e/ou Mtodos 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. Na chamada, se a quatidade de parmetros for maior que 4, ou se os parmetros forem longos, dever quebrar em 1 parmetro por linha e a virgula dever est alinhada com (.
/** * Conta quantas palavras tem na frase e retorna a quantidade. * * @author * @copyright * @license ry License 1.0 Silas Ribas <silas@skysoft.com.br> 2009 SkySoft Brasil http://www.skysoft.com.br/licenca/SSLL1.0.txt SkySoft Libra
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 linha abaixo da condio e a chave "}" vir na linha abaixo da ltima linha de contedo. Qualquer cdigo entre as chaves "{" e "}" precisa ser identado com quatro espaos. Se existe duas ou mais condies, ar condies devero est uma por linha, iniciando a linha, da segunda condio em diante, com o comparador lgico seguido da condio, entre parnteses.
if( ( $root === true ) && ( $totalDinheiro >= 100 ) ) { echo "Voc Rei. Ainda est rico, paga um churrasco?"; } elseif( ( $root === true ) && ( $totalDinheiro < 100 ) ) { echo "Voc Rei. Mas est probrinho heim."; } else { echo ", que diaxo voc ?"; 13/06/09 - SkySoft Silas Ribas Martins
Operador Ternrio ( ?: ) Dever sempre ser usado fora de qualquer bloco de contedo Os resultados devem est uma linha abaixo da condio. S dever ser usado para uma condio, para mais condies use if/elseif/else
$a = $root == true ? "Voc Rei." : "Voc no Rei";
while/for/foreach Usar espao simples depois do "(" e antes do ")" da expresso. A chave "{" vir na linha abaixo 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.
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 Usar espao simples depois do "(" e antes do ")" Sempre dever ter o default A chave "{" vir na linha abaixo da Expresso, a chave "}" vir na linha abaixo da ltima linha de contedo
13/06/09 - SkySoft Silas Ribas Martins
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]. }
Include e Require Usar include_once ou require_once somente No dever conter parnteses na chamada
require_once "SkySoft/SMTP.php";
10
LICENA
Este contedo est sob a licena Creative Commons: BY-NC-SA. Sendo permitido: copiar, distribuir, exibir e executar a obra. criar obras derivadas. Sob as seguintes condies: 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. Anexo: 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 engrandece o trabalho j realizado e incentiva continuidade de outros mais. Favor informar tambm Silas Ribas via silasrm@gmail.com
11
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