MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO PHP CODING STANDARDS



Documentos relacionados
MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO PHP CODING STANDARDS

2 echo "PHP e outros.";

PROGRAMAÇÃO MANUAL DE INSTRUÇÕES SEJA BEM VINDO VERSÃO /01/2013 UDS SOLUÇÕES DIGITAIS

MANUAL DE NORMAS PARA DESENVOLVIMENTO DE CÓDIGO DA FÁBRICA VIRTUAL DE SOFTWARE DA FIPP. Curso Superior de Tecnologia em Sistemas para Internet 2/2014

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

CONVENÇÃO DE CÓDIGO JAVA

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1

Internet e Programação Web

Como é o desenvolvimento de Software?

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Sumário. Capítulo 1 O que é o PHP? Capítulo 2 Instalação do PHP Capítulo 3 Noções básicas de programação... 25

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

CAPITULO 5 COMANDO DE FLUXO IF

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

APOSTILA PHP PARTE 1

Configuração de Impressora

Programação de Computadores - I. Profª Beatriz Profº Israel

Documentação Usando o Javadoc

Universidade Federal de Viçosa CPD - Central de Processamento de Dados Divisão de Desenvolvimento de Sistemas

CURSO DE PROGRAMAÇÃO EM JAVA

LINGUAGEM C UMA INTRODUÇÃO

JavaScript (Funções, Eventos e Manipulação de Formulários)

Programação WEB II. Conhecendo o PHP. Prof: Kelly E. Medeiros Bacharel em Sistema de Informação. Módulo III

sobre rogério gonçalves gerente de projetos > digitale agência digital rogerio@digitale.com.br h7p:// h7p://leveme.

OPERADORES E ESTRUTURAS DE CONTROLE

Resumo da Matéria de Linguagem de Programação. Linguagem C

NetBeans. Conhecendo um pouco da IDE

Guia de Consulta Rápida. PHP com XML. Juliano Niederauer. Terceira Edição. Novatec

Manual do Google agenda. criação e compartilhamento de agendas

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Security BREAK DOWN

Conectando Bancos de Dados Microsoft Access no BrOffice.org Base. fornecido pelo Projeto de Documentação do BrOffice.org

Introdução à Linguagem

Transações Seguras em Bancos de Dados (MySQL)

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Glossários em Moodle (1.6.5+)

Clonando Discos. Manual. Clonagem de Discos. Regiane S. de Carvalho Engenheira da Computação MEC/SEED/DITEC/CETE

Introdução a PHP (Estruturas de Controle)

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti

2 Orientação a objetos na prática

PROJETO PEDAGÓGICO DE CURSOS

NORMAS PARA EDITORAÇÃO E ENVIO DE TRABALHOS TÉCNICOS AO EVENTOS BRASIL 2014

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia

2.3. PHP Tipos de dados e operadores

O que é o JavaScript?

Desenvolvendo Websites com PHP

Roteiro do Programa e Entrada/Saída

JSP - ORIENTADO A OBJETOS

Como mandar mensagens OSC pelo Flash via Flosc

Gerando documentos PDF com PHP

Começando com Ruby on

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação Web Prof. Wladimir

Projeto de Software Orientado a Objeto

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Parte I. Demoiselle Mail

Manual. Configuração D-Link. Módulo - Configuração. Renato Lopes da Silva Técnico em Prospecção MEC/SEED/DITEC/CETE

Algoritmos em Javascript

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Scriptlets e Formulários

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

Conceitos básicos da linguagem C

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Panorâmica geral sobre PHP. PHP é uma linguagem que permite fazer. um ficheiro em PHP contem código PHP misturado com HTML.

Unidade IV: Ponteiros, Referências e Arrays

Prof. Carlos Majer Aplicações Corporativas UNICID

Java. Marcio de Carvalho Victorino

Projeto de Banco de Dados

Introdução ao PHP. Prof. Késsia Marchi

ProgramaTchê programatche.net Programação OO com PHP

Conceitos de extensões Joomla!

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

CURSO B SICO DE PERL

DEFINIÇÃO DE MÉTODOS

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

Algoritmos e Programação Estruturada

Principais Comandos SQL Usados no MySql

Sensor de temperatura Parte 5 Cleiton Bueno Preparando o ambiente do Banco de dados Mysql

Fundamentos de Programação II. Introdução à linguagem de programação C++

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Transcrição:

MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO v0.1 1 MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO PHP CODING STANDARDS versão 0.1 SkySoft - Silas Ribas Martins silasrm@gmail.com Walker de Alencar Oliverira contato@walkeralencar.com Este conteúdo está sob licença Creative Commons: BY-NC-SA. Reporte falhas e dê sugestões, toda ajuda será devidamente referenciada.

MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO v0.1 2 INTRODUÇÃO Como escrever um código organizado, bem estruturado e documentado. Melhorando visibilidade e facilitando futuras manutenções e implementações. Um bom padrão de codificação é importante em qualquer projeto de desenvolvimento, principalmente quando envolve vários desenvolvedores. Assegurar a Alta Qualidade do código, diminuir bugs. Observação Esse manual é baseado no PHP Coding Standards do Walker de Alencar; Alguns modificações foram realizadas se adequando à nossa realidade; Foram acrescentado outros itens que achamos importantes. Todos o resto foi mantido, assim como a formatação mais próxima existente no material base e sua licença.

FORMATO DO ARQUIVO PHP MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO v0.1 3 Identação Tab com tamanho de 4 espaços. Codificação do Arquivo UTF-8; Formato Unix ( final de linha em (LF) - [\n] )

NOMENCLATURAS MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO v0.1 4 Padrão CamelCase É a denominação em inglês para a prática de escrever palavras compostas ou frases, onde cada palavra é iniciada com Maiúsculas, e unida sem espaços. É um padrão largamente utilizado em diversas linguagens de programação, como Java, Ruby e Python, principalmente nas definições de Classes e Objetos. (Fonte: wikipedia.com) Divisões: lowercamelcase ( ipod, iphone ) e UpperCamelCase ( OpenOffice, StarTrek ) UpperCamelCase Classes O nome da classe deverá conter primeiramente o nome do Autor ( deverá ser curto, não composto e não 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 padrão UpperCamelCase. Skysoft_EmailSmtp, Skysoft_Upload LowerCamelCase Variáveis $isroot, $itenscarrinho Propriedades $this->caminhoupload, $this->nomecompleto Funções e Métodos $this->calculafrete(), $this->geraminiatura(), contapalavras( $frase ) UPPERCASE Contantes ORM_SERVIDOR, BASE_UPLOAD, URL_API

MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO v0.1 5 ESTILO DE CÓDIGO (Coding Style) Demarcação de Código PHP Não usar short_tags(<? E <?=) Usar tags completas (<?php e <?php echo ) Strings Literais Se a string não contiver variáveis de substituição, deve-se usar aspas simples. $tmpstr = 'Exemplo de String'; Strings Literais com Apóstrofos Pode-se usar aspas simples, mas é recomendado o uso de aspas duplas para evitar slashes [\] $tmpsql = SELECT id, nome FROM cliente WHERE name='walker' ; Substituição de Variáveis e Concatenação de Strings Usar aspas duplas. Usar espaço 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 "" virão na linha abaixo do nome da Classe. Toda classe deve ter um bloco de documentação em conformidade com o Padrão do PHPDocumentor. Qualquer código dentro da classe precisa ser identado com quatro espaços. Só é permitida uma classe por arquivo PHP. /** * Envia E-mail conectando num servidor SMTP. * * @author Silas Ribas <silas@skysoft.com.br> * @copyright 2009 SkySoft Brasil

MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO v0.1 6 * @license http://www.skysoft.com.br/licenca/ssll1.0.txt SkySoft Libra ry License 1.0 * @version 1.1 * @category MAIL * @package SkySoft_SMTP */ class SkySoft_SMTP /* Ensinar ao Mr. M como fazer Mágica aqui. */ Variáveis de Classes (Propriedades) Nomear em lowercamelcase Devem ser declaradas no topo da classe, antes de qualquer declaração de métodos. Sempre declarar sua visibilidade: private, protected ou public. Preferencialmente não utilizar declaração de variáveis de classes como public, para incentivar o uso de (set/get) Funções e/ou Métodos Nomear em lowercamelcase. As chaves "" e "" virão na linha abaixo do nome da Função/Método. Toda Função/Método deve ter um bloco de documentação em conformidade com o Padrão do PHPDocumentor. Qualquer código dentro da Função/Método precisa ser identado com quatro espaços. Sempre declarar a visibilidade: private, protect ou public. Na chamada, se a quatidade de parâmetros for maior que 4, ou se os parâmetros forem longos, deverá quebrar em 1 parâmetro por linha e a virgula deverá está alinhada com (. /** * Conta quantas palavras tem na frase e retorna a quantidade. * * @author Silas Ribas <silas@skysoft.com.br> * @copyright 2009 SkySoft Brasil * @license http://www.skysoft.com.br/licenca/ssll1.0.txt SkySoft Libra ry License 1.0

MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO v0.1 7 * @param string $frase texto que terã as palavras contadas * @return int quantidade de palavras que o texto possui */ function contapalavras( $frase ) /* Mágica aqui. */ criafigura( $comprimento, $altura, $corfundo, $corfigura, $borda ); Estruturas de Controle if / else / elseif Usar espaço simples depois do "(" e antes do ")" da condiçao no IF e no ELSEIF A chave "" virá na linha abaixo da condição e a chave "" virá na linha abaixo da última linha de conteúdo. Qualquer código entre as chaves "" e "" precisa ser identado com quatro espaços. Se existe duas ou mais condições, ar condições deverão está uma por linha, iniciando a linha, da segunda condição em diante, com o comparador lógico seguido da condição, entre parênteses. 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ê é?";

MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO v0.1 8 Operador Ternário (?: ) Deverá sempre ser usado fora de qualquer bloco de conteúdo Os resultados devem está uma linha abaixo da condição. Só deverá ser usado para uma condição, para mais condições use if/elseif/else $a = $root == true? "Você é Rei." : "Você não é Rei"; while/for/foreach Usar espaço simples depois do "(" e antes do ")" da expressão. A chave "" virá na linha abaixo da expressão, a chave "" virá na linha abaixo da última linha de conteúdo. Qualquer código entre as chaves "" e "" precisa ser identado com quatro espaços. while(!feof( $hfile ) ) // precisa ser identado com [Tab 4 espaços]. for( $intcount = 0; $intcount <= 10; $intcount++ ) // precisa ser identado com [Tab 4 espços]. foreach( $arrlist as $mixkey => $mixvalue ) // precisa ser identado com [Tab 4 espaços]. switch/case Usar espaço simples depois do "(" e antes do ")" Sempre deverá ter o default A chave "" virá na linha abaixo da Expressão, a chave "" virá na linha abaixo da última linha de conteúdo

MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO v0.1 9 Qualquer código entre as chaves "" e "" precisa ser identado com quatro espaços Qualquer código dentro de: case e default, precisa ser identado com quatro espaços, inclusive a palavra reservada: break. switch( $intnivel ) case 1: // precisa ser identado com [Tab 4 espaços]. break; case 2: // precisa ser identado com [Tab 4 espaços]. break; default: // precisa ser identado com [Tab 4 espaços]. Array Quando os índices não forem numéricos, deverá seguir o padrão lowercamelcase $equipe = array( "silasribas" => "Silas Ribas Martins", "rodrigoalves" => "Rodrigo Alves" ); Include e Require Usar include_once ou require_once somente Não deverá conter parênteses na chamada require_once "SkySoft/SMTP.php"; Erros Deverão ser expostos somente em desenvolvimento Usar Exceções exaustivamente

MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO v0.1 10 LICENÇA Este conteúdo está sob a licença Creative Commons: BY-NC-SA. Sendo permitido: copiar, distribuir, exibir e executar a obra. criar obras derivadas. Sob as seguintes condições: Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Uso Não-Comercial. Você não pode utilizar esta obra com finalidades comerciais. Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta obra. Qualquer uma destas condições pode ser renunciada, desde que Você obtenha permissão do autor. Nada nesta licença prejudica ou restringe os direitos morais do autor. Anexo: Ao adotar este padrão em alguma instituição informar ao autor através 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 também à Silas Ribas via silasrm@gmail.com

REFERÊNCIAS MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO v0.1 11 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