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 WEB II. Conhecendo o PHP. Prof: Kelly E. Medeiros Bacharel em Sistema de Informação. Módulo III

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

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

PHP e MySQL Autenticação de Usuários

PHP (PHP Hypertext Preprocessor)

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

INTRODUÇÃO À LINGUAGEM C++

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

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Programação: Estruturas de seleção

Um Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS

9 Comandos condicionais

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

Manipulando Strings no VBA (Replace, Mid e InStr)

Inserindo e Listando registros

Computação II Orientação a Objetos

Estrutura Condicional em Java

Implementando uma Classe e Criando Objetos a partir dela

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

Laboratório de Banco de Dados II Aula 1. Stored Procedures

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

insfcanceof new public switch transient while byte continue extends for int null

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Programando em C++ Histórico da Linguagem C

Linguagem de Programação C

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

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis.

Exercícios de Revisão Java Básico

Conceitos básicos da linguagem C

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

Bem vindo Joe Ramone!

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

ÍNDICE INTRODUÇÃO...3

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

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

Consultar Dados de Conta

Desenvolvimento de Aplicações para Internet Aula 7

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

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

Elementos de programação em C

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

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.

Programação por Objectos. Java

Enviado dados para o PHP através de formulário

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

2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal.

Python Intermediário. terça-feira, 4 de agosto de 15

Linguagem de Programação I

Personal Home Page PHP. Prof. Luiz Claudio F. de Souza

Algoritmos e Programação

Iniciando PHP. Agenda

Para o envio de s pelo PHP é necessário seguir a seguinte sintaxe:

MODELO PARA ELABORAÇÃO E FORMATAÇÃO DE ARTIGOS CIENTÍFICOS DO CENTRO UNIVERSITÁRIO SÃO CAMILO - ES

PROGRAMAÇÃO ORIENTADA A OBJETO EM PHP

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

DESENVOLVIMENTO DE SOFTWARE

Desenvolvimento de aplicações Web. Java Server Pages

Programação para web JavaScript

Encapsulamento de Dados

Testando e Comparando Valores

Estruturas de Controle em PHP

JavaScript (ou JScript)

Manual Fácil 1 DOWNLOAD E INSTALAÇÃO. 1. Como faço o download do Jimbo Mobile?

Algoritmos e Técnicas de

Algoritmos e Programação II. Sobrecarga

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

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

Seja muito bem-vinda(o) ao Curso de Gestão em Projetos Sociais - PMD Pro1!

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

UTILIZANDO RECURSOS E ATIVIDADES NO MOODLE

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

HTML Básico Formulários. Matheus Meira

Manual de Publicação Wordpress

Passo a passo para emissão de Nota Fiscal de Produtor Eletrônica NFP-e. Natureza 80 SAÍDA para FIM ESPECÍFICO de EXPORTAÇÃO (versão 07)

INF 1007 Programação II

Busca em Memória. Secundária

Desenvolvimento Web TCC Turma A-1

PROCEDIMENTO PARA CRIAÇÃO / ALTERÇÃO DE DOMÍNIO DE PREFEITURAS, CÂMARAS E ÓRGÃOS MUNICIPAIS/ESTADUAIS.

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

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

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

2 Orientação a objetos na prática

10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação

Adicionando Propriedades e Funcionalidades aos Componentes Parte II

Regras da migração dos dados para o sistema Protocolo Fly

Internet e Programação Web

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

Programação WEB II. Formulários Em PHP. Métodos GET e POST progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Tutorial para criação de componentes JSF Facelets Por Érico GR 07/08/2007

Variáveis e Comandos de Atribuição

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Transcrição:

MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO PHP CODING STANDARDS versão 1.0 W7BR Soluções e Tecnologia contato@w7br.com

Sumário INTRODUÇÃO... 3 Observação... 3 FORMATO DO ARQUIVO PHP... 4 Identação... 4 Codificação do Arquivo... 4 NOMENCLATURAS... 5 Padrão CamelCase... 5 UpperCamelCase... 5 LowerCamelCase... 5 UPPERCASE... 5 ESTILO DE CÓDIGO (Coding Style)... 6 Demarcação de Código PHP... 6 Strings Literais... 6 Strings Literais com Apóstrofos... 6 Substituição de Variáveis e Concatenação de Strings... 6 Classes... 6 Variáveis de Classes (Propriedades)... 7 Funções e/ou Métodos... 8 Estruturas de Controle... 8 Array... 10 Erros... 10 REFERÊNCIAS... 11

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 Identação Tab com tamanho de 4 espaços. Codificação do Arquivo UTF-8;

NOMENCLATURAS 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 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 padrão UpperCamelCase. Ex.: clsbancodados; clsenviararquivo. 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

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 simples. 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 "=". Classes $tmpsql = 'SELECT id,nome '. 'FROM cliente '. WHERE name = Walker' "; Nomear em clsuppercamelcase. As chaves "{" virá na linha frente do nome da classe e o "" 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 um TAB. Só é permitida uma classe por arquivo PHP.

/** * Envia E-mail conectando num servidor SMTP. * * @author Cleyton Ferrari <cleyton@w7br.com> * @copyright 2009 W7Br Soluções * @license http://www.w7br.com * @version 1.1 */ class W7br_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) Se a propriedade for a chave primária 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 Soluções * @license http://www.w7br.com * @version 1.1 */ class W7br_SMTP { /* Ensinar ao Mr. M como fazer Mágica aqui. */ private $_servico_id; function setservico_id ($value) { $this->_servico_id = $value; function getservico_id(){ return $this->_servico_id;

private $_nome; function setnome ($value) { $this->_nome = $value; function getnome(){ return $this->_nome; Funções e/ou Métodos Nomear em UpperCamelCase. As chaves "{" virá na linha frente do nome da Função/Método e o "" 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 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 ){ /* Mágica aqui. */ Estruturas de Controle if / else / elseif A chave "{" virá na linha da declaração 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 um TAB. Sempre deverá utilizar as { e mesmo que a condição tenha somente uma linha. O else e elseif deverão ficar logo após a chave de fechamento 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ê é?"; Operador Ternário (?: ) Só deverá ser usado para uma condição, para mais condições use if/elseif/else Toda a expressão devera ficar somente e uma linha. $a = $root == true? "Você é Rei." : "Você não é Rei"; while/for/foreach A chave "{" virá na mesma linha 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 um TAB. 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 Sempre deverá ter o default A chave "{" virá na linha 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 um TAB; Qualquer código dentro de: case e default, precisa ser identado com um TAB, 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 Deverá conter parênteses na chamada require_once ("SkySoft/SMTP.php"); Erros Deverão ser expostos somente em desenvolvimento, após o desenvolvimento na versão final deverão ser usado do error_reporting(0); Usar Exceções exaustivamente

REFERÊNCIAS 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