DES:classesProntas

De Wiki Unioeste NTI
Ir para: navegação, pesquisa

Tabela de conteúdo

O que são ?

Classes escritas em PHP com funções bem definidas e que podem ser utilizadas em diversos sistemas.

Padrão Seguido

Todos os métodos inicial com letra minúscula e caso possuam mais palavras a primeira letra de cada uma delas esta em letra maiúscula.

O construtor da classe deve possuir os parâmetros para deixar o objeto já em operação.

Utilizar "private" e "public" nos métodos e propriedades dos objetos a fim de aumentar a segurança do mesmo.

quando documentar um método ou uma classe utilizar
+ público;
- privado;

Quando possível utilizar o arquivo abaixo para criar os diagramas, e sempre que utiliza-lo realizar sua atualização. http://200.201.80.50/sistemas/inc/classesProntas.xmi

CVS "Controle de Versão

Para utilizar o CVS nos projetos não é necessário nenhuma mudança da plataforma de desenvolvimento.

O linux geralmente vem com o Cervisia um sistema integrado com o "quanta".

Também é possível utilizar o eclipse para utlizar o controle de versão, ele já vem com um plug-in instalado para isto.

Instalar plug-in PHP help -> Software Update -> Find and Install -> Search for new features to install -> new remote site.

adicione a seguinte URL: http://phpeclipse.sourceforge.net/update/cvs

Montar uma pasta no seu computador que aponte para a pasta compartilhada no samba onde o seu projeto RODA no php mount -o username=alebattisti -o smbfs //200.201.80.50/estagiarios /home/anselmo/Projetos/www/estagiarios/

importante: as permissões do ponto de montagem e da pasta no servidor devem te permitir manipular os arquivos que estarão dentro dela.

após montar o diretório

crie um projeto no eclipse que use o ponto de montagem para armazenado os arquivos

import do servidor CVS os arquivos da última versão do software

http://www.linhadecodigo.com.br/artigos.asp?id_ac=927 mostra como configurar o eclipse.

Abstração do Banco de dados

Arquivo

Local 200.201.80.50/sistemas/inc/abstracaoBD.php;
Nome da Classe:abstracaoBD;

Funcionalidade

A partir de um vetor com o nome do atributo do campo da tabela e o valor que ele deve assumir pode-se inserir dados em uma tabela de forma bem rápida.

Métodos

inserirRegistroVetor()

funcionalidade
A partir de um vetor do tipo

  • $nome['1']['campo'] = 'PssFsc_Codigo'
  • $nome['1']['valor'] = '1'
  • $nome['2']['campo'] = 'PssFsc_Codigo'
  • $nome['2']['valor'] = '2'

realiza a inserção destes dados em uma tabela, INSERE APENAS um registro por vez.

parâmteros

  1. Objeto de conexão com o banco de dados
  2. Em qual a tabela será a inserção
  3. O vetor que possui os dados
  4. Até qual campo deste vetor será gerado o SQL da inserção

retorno
1 se a inserção foi realizada com sucesso e uma string que contém a mensagem de erro vinda do banco de dados.

exemplo
// Vetor com os dados a serem inseridos
$PssFisica['1']['campo'] = "PssFsc_Codigo";
$PssFisica['1']['valor'] = "4040";
$PssFisica['2']['campo'] = "PssFsc_Nome";
$PssFisica['2']['valor'] = "Anselmo";

$inserir = new abstracaoBD();

$ret = $inserir->inserirRegistroVetor($db,'TpOrientacao',$orientacao);
if ($ret != 1) {

echo $ret;

inserirRegistro()

funcionalidade
A partir de um formulário HTML que possui os nomes dos campos do formulário igual aos nomes dos campos da tabela, reazliza a inserção dos dados na tabela com base no vetor $_POST gerado pelo PHP quando se enviar dados do formulário pelo método do html post.

parâmteros

  1. conexao  : objeto ADODB de conexão com o Objeto
  2. vetor : vetor com os campos e os valores que devem ser inseridos
  3. tabela : em qual tabela dave ser inserido os dados
  4. ultimo_campo : valor do último campo a ser inserido

retorno
1 se a inserção foi realizada com sucesso e uma string que contém a mensagem de erro vinda do banco de dados.

exemplo
$inserir = new abstracaoBD();

$ret = $inserir->inserirRegistro($db,'TpOrientacao',$_POST,'Btn_Enviar');
if ($ret != 1) {

echo $ret;

adicionarCampo()

funcionalidade
Insere um vetor ao início de outro vetor, isto é muito útil quando é necessário adicionar campos ao Vetor $_POST que não foram inseridos no formulário HTML.

parâmteros

  1. array_base  : Vetor $_POST
  2. array_a_ser_adicionado : Vetor com o novo valor que vai para o array_base

retorno
array contendo a soma do array_a_ser_adicionado com o array_base.

exemplo
$_POST = $inserir->adicionarCampo($_POST, array('PssFsc_Sobrenome' => $this->separaSobrenome()));


removerCampo()

funcionalidade
Recebe um vetor e uma chave, remove o campo que é identificado por aquela chave do vetor.

parâmteros

  1. chave  : qual é a chave do campo que sera removido do vetor

retorno
array sem o campo chave

exemplo
$_POST = $inserir->removerCampo("nome");

apagarRegistro

Funcionalidades
Serve para apagar um registro de uma tabela

Parâmteros:

  1. bd  : conexão com o banco de dados
  2. tabela : qual tabela será removida
  3. pk  : array com as chaves que serão usadas para identificar unicamente a tupla que será removida

Retorno
1 se deu certo caso contrário texto com o erro que ocorreu no banco de dados

Exemplo
O Vetor que será passado deve ser como e abaixo, a função operador será um operador lógico, e o $pk[0][campo] = id;
$pk[0][operador] = "="; // sinal de igualdade
$pk[0][valor] = valor;
$pk[0][logico] = and

Imagem

AbstracaoBD.png

Existe Transação

Arquivo

Local 200.201.80.50/sistemas/inc/existeTransacao.php;
Nome da Classe:existeTransacao;

Funcionalidade

Retorna se um valor esta em um vetor com 2 dimensões ou não, para o uso nos sistemas onde é necessário a validação dos dados basta passar o vetor com as transações e qual a transação esta sendo procurada.

Métodos

existeTransacao()

funcionalidade
verifica se um transação está ou não dentro das transações que o usuário tem direito de acessar.

parâmteros

  1. Vetor onde as transações estão armazenadas
  2. Nome da coluna que estão as transações por padrão transacao
  3. Qual transação esta sendo procurada

retorno
nenhum

Exemplo:
$f->existeTransacao($transacao,'transacao','menu_pgespecial')

Validação de Dados

Arquivo

Local 200.201.80.50/sistemas/inc/validacao/validationClass.php
Nome da Classe:validateFields;

Funcionalidade

Contém várias validações que podem ser aplicadas a campos dos formulários.

  1. Texto
  2. Número Inteiro
  3. Número Decimal
  4. E-mail
  5. URL
  6. Data
  7. Checkbox
  8. Radio
  9. Ra dos alunos
  10. CPF
  11. Cnpj

O Objeto validateFields é instanciado e a ele são adicionados os campos que devem ser validados, bem como a forma da validação que será feita.

Ao final basta chamar o método validation(), e este realiza-rá a validação dos campos retornando os erros ser ocorrerem.

Métodos

validateFields()

funcionalidade
Gera a instância inicial onde serão adicionados os campos a serem validados.

parâmteros
nenhum

retorno
Valor booleano, verdadeio se não tiver erros e false se tiver erros.

exemplo
$example = new validateFields;

validation()

funcionalidade
Inicia o processo de validação do formulário

parâmteros
nenhum

retorno
verdadeio caso não hajam erros
falso caso hajam erros.

exemplo
if ($example->validation()) {

$error = "All form fields are valid!";

} else {

$error = $example->createMsg();

}

addTextField()

funcionalidade
Inicia o processo de validação do formulário

parâmteros

  1. Nome do campo do formulário HTML a ser validado
  2. Variável PHP com o valor do campo
  3. Tipo da validação no caso 'text'
  4. Se o campo é requerido 'y' para sim 'n' para não
  5. Compŕimento do campo, se for diferente de 0 ele é validado por sendo menor que este número
  6. Legenda: o que deve aparecer como nome do campo se houver algum problema

retorno
nenhum

exemplo
$example->addTextField("Simple_text", $_POST['string'], "text", "y", 0, "Texto Simples");

addNumField()

funcionalidade
Validação de números inteiros e decimais

parâmteros

  1. Nome do campo do formulário HTML a ser validado
  2. Variável PHP com o valor do campo
  3. Tipo da validação no caso 'number' para inteiros 'decimal' para decimais
  4. Se o campo é requerido 'y' para sim 'n' para não
  5. Quantidade de casas decimais
  6. Tamanho total do número
  7. Legenda: o que deve aparecer como nome do campo se houver algum problema

retorno
nenhum

exemplo
$example->addNumField("Number", $_POST['number'], "decimal", "y", 0, 5, "Campo 2");
$example->addNumField("Number", $_POST['number'], "number", "y", 0, 5, "Campo 2");

addLinkField()

funcionalidade
Validação de endereços de e-mail e URL

parâmteros

  1. Nome do campo do formulário HTML a ser validado
  2. Variável PHP com o valor do campo
  3. Tipo da validação no caso 'mail' para e-mail e 'url' para endereços url
  4. Se o campo é requerido 'y' para sim 'n' para não
  5. Legenda: o que deve aparecer como nome do campo se houver algum problema

retorno
nenhum

exemplo
$example->addLinkField("Email_address", $_POST['email'], "email","y","Campo 6");
$example->addLinkField("internet_link", $_POST['url'], "url", "y","Campo 7");

addDateField()

funcionalidade
Validação de datas, no formato brasileiro dd/mm/yyyy e america mm-dd-yyyy

parâmteros

  1. Nome do campo do formulário HTML a ser validado
  2. Variável PHP com o valor do campo
  3. Tipo da validação no caso 'date'
  4. Tipo da data 'eu' padrao dd/mm/yyyy e 'us' padrao mm-dd-yyyy
  5. Se o campo é requerido 'y' para sim 'n' para não
  6. Legenda: o que deve aparecer como nome do campo se houver algum problema

retorno
nenhum

exemplo
$example->addDateField("Euro_date", $_POST['date'], "date", "eu", "y","Campo 4");

addCheckBox()

funcionalidade
Verifica se um check box esta ticado "setadi" ou não

parâmteros

  1. Nome do campo do formulário HTML a ser validado
  2. Variável PHP com o valor do campo
  3. Tipo da validação no caso 'checkbox'
  4. Valor requerido para aquele campo
  5. Legenda: o que deve aparecer como nome do campo se houver algum problema

retorno
nenhum

exemplo
$example->addCheckBox("Check_box", "check", "checkbox","y","Campo 5");

addRa()

funcionalidade
Verificar se um valor passado é ou não um RA válido.

parâmteros

  1. Nome do campo do formulário HTML a ser validado
  2. Variável PHP com o valor do campo
  3. Tipo da validação no caso 'ra'
  4. Valor requerido para aquele campo
  5. Legenda: o que deve aparecer como nome do campo se houver algum problema

retorno
nenhum

exemplo
$example->addRa("campoRa","$_POST['ra']","ra","y","Campo do Ra do aluno");

addCpf()

funcionalidade
Verificar se um valor passado é ou não um Cpf válido, tanto pode ser passado valores com máscara como sem máscara.

parâmteros

  1. Nome do campo do formulário HTML a ser validado
  2. Variável PHP com o valor do campo
  3. Tipo da validação no caso 'cpf'
  4. Valor requerido para aquele campo
  5. Legenda: o que deve aparecer como nome do campo se houver algum problema

retorno
nenhum

exemplo
$example->addCpf("campoCpf","$_POST['cpf']","cpf","y","Campo do Cpf do aluno");

addCnpj()

funcionalidade
Verificar se um valor passado é ou não um Cnpj válido, tanto pode ser passado valor com máscara bem como sem máscara.

parâmteros

  1. Nome do campo do formulário HTML a ser validado
  2. Variável PHP com o valor do campo
  3. Tipo da validação no caso 'cnpj'
  4. Valor requerido para aquele campo
  5. Legenda: o que deve aparecer como nome do campo se houver algum problema

retorno
nenhum

exemplo
$example->addCnpj("campoCnpj","$_POST['cnpj']","cnpj","y","Campo do Cnpj da empresa");

Exemplo de Uso

include("validationClass.php");
if (isset($_POST['submit'])) {

$example = new validateFields;
$example->check4html = true;
$example->addTextField("Simple_text", $_POST['string'], "text", "y", 0, "Campo 1");
$example->addNumField("Number", $_POST['number'], "number", "y", 0, 5, "Campo 2");
$example->addNumField("Number_with_decimals", $_POST['decimal'], "decimal", "y",2, 0,"Campo 3");
$example->addDateField("Euro_date", $_POST['date'], "date", "eu", "y","Campo 4");
$example->addCheckBox("Check_box", "check", "checkbox","y","Campo 5");
$example->addLinkField("Email_address", $_POST['email'], "email","y","Campo 6");
$example->addLinkField("internet_link", $_POST['url'], "url", "y","Campo 7");
$example->addTextField("texto",$_POST['texto'],"text","y", 10, "Campo 8");
if ($example->validation()) {
$error = "All form fields are valid!";
} else {
$error = $example->createMsg();
}

}

Arquivos de Log

Arquivo

Local 200.201.80.50/sistemas/inc/logClass.php;
Nome da Classe:logClass;

Funcionalidade

Armazenar informações em um arquivo de log.

Será necessáro a criação de uma pasta com o nome log dentro da pasta onde esta o sistema, e a ela será necessário dar permissão de escrita para todo mundo.

Métodos

Construtor

funcionalidade
contrutor do objeto de log

parâmteros

  1. Diretório dos log
  2. Arquivo dos log

Os dois valores são opcionais, se não passado nada para eles o arquivo de log ficará dentro da pasta log e o arquivo será o log.txt.

retorno
nenhum

exemplo
$log = new logClass();
$log = new logClass("/var/www/sistemas/teste","loges.txt");

addLog()

funcionalidade
Inserir um texto dentro do arquivo de log.

parâmteros

  1. Usuário Logado
  2. Texto a ser inserido
  3. Página de Origem

retorno
nenhum

exemplo I
$log->addLog("Maria","Texto de exemplo","index.php");
exemplo II
Em sistemas que possuam uma padronização quanto a usuários e paginas e possível utilizar os logs da maneira a seguir. $log->addLog($_SESSION['usuario'],"Texto de exemplo",$_SERVER['PHP_SELF']);

Diagrama de Classe

LogClass.png

Gerar Relatórios

Arquivo

Local 200.201.80.50/sistemas/inc/reportClass.php
Nome da Classe:relatorio;

Funcionalidade

Facilitar e padronizar a criação de formulários html.

  1. Definição de Colunas
  2. Definição de Sub-totais
  3. Grupos - (media, soma, maior, menor)
  4. Cabeçalho
  5. Rodape

Métodos

Contrutor

funcionalidade
Instancia um objeto do tipo reportClass parâmteros

  1. título: título do formulário

retorno
nada

exemplo I
$rl = new relatorio("PIAD com Observações");

addConteudo()

funcionalidade
Insere no objeto o vetor que contém os dados a serem listados pelo formulário parâmteros

  1. vetor: objeto do tipo vetor contendo os dados a serem listados pelo formulário

retorno
null

exemplo I
$rl->addConteudo($relatorio);

addColuna()

funcionalidade
Adicionar quais serão as colunas a serem exibidas no relatório. parâmteros

  1. Descrição: qual será o título da coluna
  2. Largura: largura da coluna
  3. Posição: posição da coluna no relatório, iniciar em 1 se 0 da PROBLEMA
  4. alinhamento: opcional define o alinhamento do texto em relação a célula

retorno
nada

exemplo I
$rl->addColuna("Código","50",1); $rl->addColuna("Nome","200",2); $rl->addColuna("Centro","100",3); $rl->addColuna("Observações","100",4);

addSubTotal()

funcionalidade
Aparecerá uma linha no final do relatório contendo a soma das colunas que possuirem subtotal, para que mais do que uma coluna seja listada como subtotal é necessároi parâmteros

  1. coluna que será coloca como subtotal

retorno
nada

exemplo I
$rl->addSubTotal(1); $rl->addSubTotal(2);

addGrupo()

funcionalidade
Os grupos são as partes do relatório onde são realizados cálculos locais por exemplo, quantos registros com o mesmo PssFsc_Codigo existe.

A SQL que gera os elementos que irão compor o relatorio deve ter a cláusula ORDER BY nome_campo_grupo.

parâmteros

  1. Coluna que irá ser utilizada para definir o grupo, exemplo PssFsc_Codigo
  2. Coluna de cálculo: exemplo Projeto_Horas
  3. Qual função será aplicada a coluna de cálculo, podem ser 5
    • soma: soma todos os elementos do mesmo grupo
    • media: média aritimética dos elementos do grupo
    • menor: qual o menor elemento do grupo
    • maior: qual o maior elemento do grupo
    • contar: conta quantos elementos existem no grupo

retorno
nada

exemplo I
$rl->addGrupo(3,1,'soma');
neste exemplo a coluna 3 será utlizada como grupo e a coluna 1 será somada

addHoras()

funcionalidade
adiciona a data e a hora em que o relatório foi gerado no final da última página parâmteros
nenhum

retorno
nenum

exemplo I
$rl->addHoras()

addCss()

funcionalidade
define onde estará o novo arquivo de configuração visual .CSS, por padrão existe um arquivo chamado reportClass.css que contém todas as formatações, se for necessário personalizar as cores, basta criar um novo arquivo com as mesmas classes e chamar este método.

parâmteros

  1. url onde esta o novo arquivo de css

retorno
nada

exemplo I
$rl->addCss("novocss.css")


addLinhaEspecial()

AINDA NAO INTEGRADO AO ARQUIVO PADRAO DE FORMULARIOS
funcionalidade escreve o conteúdo de uma linha com colspan = "largura da página", ou seja, faz uma linha que ocupa a largura da tabela.

parâmetros

  1. descricao: qual será o título da linha no relatório
  2. pos: posição da linha no relatório

retorno nenhum

exemplo $rl->addLinhaEspecial($descricao, $pos)

gerarRelatorio()

funcionalidade
Método que efetivamente cria o relatório, ele monsta o html com todos os dados. parâmteros
nenhum

retorno
nenhum

exemplo I
$rl->geraRelatorio()

PessoaFisica

Arquivo

Local 200.201.80.50/sistemas/inc/classPessoaFisica.php;
Nome da Classe:classPessoaFisica;

Funcionalidade

Insere os dados de uma pessoa na tabela PssFisica

Métodos

+ __construct()

funcionalidade
Instancia um objeto do tipo classPessoaFisica

parâmteros

  1. $db : objeto de conexão com o banco de dados

retorno
nada

exemplo

+ cadastrar()

funcionalidade
Insere os dados na tabela PssFisica

parâmteros
nada

retorno
boolean
verdadeiro se inseriu e false se não inseriu os dados, quando for false vem uma string dizendo o porquê do erro.

exemplo

Imagem

ClassPessoaFisica.png

Formulários de Pesquisa

Para que seu sistema tenha acesso aos formulários de busca é necessário adicionar o nome do seu banco no arquivo conecta.php so sistema de formulários de busca "temporário".

A palavra chave da busca deve ter no mínimo 3 caracteres para evitar problemas de sobrecarga de javascript no navegador do cliente.

Geral

  • Quando mais do que um campo será utilizado como retorno do formulário o nome deles na URL será separado por o símbolo de ponto e virgula ';' .
  • Colocar na sessão a variável baseDados contendo o nome da base de dados que sua aplicação utiliza, assim não é necessário mais especificar o nome da base d edados dentro do codigo fonte do frmBusca.

Arquivos em todas as páginas

Todas as páginas que usarão algum dos formulários de pesquisa devem incluir o três arquivos.

<link rel="stylesheet" href="http://200.201.80.50/sistemas/inc/frmBusca/css/lightbox.css" media="screen,projection" type="text/css" />

<script type="text/javascript" src="http://200.201.80.50/sistemas/inc/frmBusca/js/prototype.js"></script>

<script type="text/javascript" src="http://200.201.80.50/sistemas/inc/frmBusca/js/lightbox.js"></script>

Para chamar qualquer um dos formulários de pesquisa o procedimento é o mesmo, basta colocar um link com a seguinte cara apontado para o arquivo que irá fazer a consulta. exemplo

<a href='http://200.201.80.50/sistemas/inc/frmBusca/pesquisarMunicipio.php?objTela=Mnc_Descricao2&objOculto=Mnc_Codigo2' class='lbOn'><img src='imagem/magnifier.png' alt='Pesquisar Por Município'/></a>

Municípios

Pesquisa na tabela município utilizando como chave de pesquisa o nome do município

Arquivo

http://200.201.80.50/sistemas/inc/frmBusca/pesquisarMunicipio.php

Link para o Formulário

<a href='http://200.201.80.50/sistemas/inc/frmBusca/pesquisarMunicipio.php?objTela=Mnc_Descricao2&objOculto=Mnc_Codigo2' class='lbOn'><img src='imagem/magnifier.png' alt='Pesquisar Por Município'/></a>

Parâmetos

  • objTela : Id do campo do formulário que irá receber o texto descritivo quando um item for escolhido dentro dos resultados
  • objOculto : Código do item escolhido dentro do resultado

Professores

Arquivo

Link para o Formulário

Parâmetos

  • objTela : Id do campo do formulário que irá receber o texto descritivo quando um item for escolhido dentro dos resultados
  • objOculto : Código do item escolhido dentro do resultado

Pessoa Juridica

Arquivo

Link para o Formulário

Pessoa Fisica

Arquivo

http://200.201.80.50/sistemas/inc/frmBusca/pesquisarPessoaFisica.php

Link para o Formulário

<a href='http://200.201.80.50/sistemas/inc/frmBusca/pesquisarPessoaFisica.php?objTela=Mnc_Descricao2&objOculto=Mnc_Codigo2' class='lbOn'><img src='imagem/magnifier.png' alt='Pesquisar Por Município'/></a>

Parâmteros

  • objTela : Id do campo do formulário que irá receber o texto descritivo quando um item for escolhido dentro dos resultados
  • CNPJNumero
  • CNPJFilial
  • CNPJDigito

Convênios

Arquivo

http://200.201.80.50/sistemas/inc/frmBusca/pesquisarConvenio.php

Link para o Formulário

<a href='http://200.201.80.50/sistemas/inc/frmBusca/pesquisarConvenio.php?objTela=Mnc_Descricao2&objOculto=Mnc_Codigo2' class='lbOn'><img src='imagem/magnifier.png' alt='Pesquisar Por Município'/></a>

Parâmteros

  • objTela : Id do campo do formulário que irá receber o texto descritivo quando um item for escolhido dentro dos resultados
  • objOculto : Código do item escolhido dentro do resultado

Como Criar um Novo Formulário de Pesquisa

Dentro da pasta js do inc/frmBuscas possui um arquivo chamado "ajaxConsulta.js" nele esta a função para chamar uma página no modo assíncrono e uma função que irá redirecionar o retorno do servidor para a função específica do mapeamento.

Tela de Editar

Objetivo

Uma grande parte dos sistemas desenvolvidos necessitam de alguma forma permitir a alteração dos dados cadastrados, isto inevitavelmente implica em se ter uma tela para o usuário procurar e visualizar todos os registros já cadastrados a fim de escolher aquele que irá ser editado.

A idéia por traz deste módulo é tornar esta tela independente de sistema, O programador de um novo sistema terá que se preocupar em programar apenas o formulário que efetrivamente fará a alteração dos dados cadastrais, a tela de exibição e a função de busca será apenas customizada para o sistema.

A customização será feita a partir de algumas variáveis de controle como por exemplo, nome da tabela, quais serão os campos exibidos ao usuário, quais destes permitirão pesquisa, qual a restrição geral da SQL tanto nas buscas como no momento de apagar os dados.

Contrução do sistema

Data e Hora

Objetivo

Manipular datas e horas

Métodos

+ br2eu

Converte uma data no formato dd/mm/aaaa no formato mm-dd-aaaa.

Se a data passada estiver vazia entao ela deve retornar 00-00-000

Parâmtros

String do tipo data

Retorno

Data no formato mm-dd-aaaa

+ eu2br

Converte uma data no formato mm-dd-aaaa no formato dd/mm/aaaa.

Se a data passada estiver vazia entao ela deve retornar 00-00-000

Parâmtros

String do tipo data

Retorno

Data no formato dd/mm/aaaa

Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Ferramentas