Desenvolvimento orientado a objetos com PEAR: DB/MDB2, DB_DataObject, HTML_QuickForm e DB_DataObjectFormBuilder



Documentos relacionados
Sumário. Capítulo 1 Revisão de PHP Capítulo 2 Melhorando o processamento de formulários... 46

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

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I

Desenvolvendo Websites com PHP

Copyright 2008, 2013 da Novatec Editora Ltda.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc.

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Prof.: Clayton Maciel Costa

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

Prof. Marcelo Machado Cunha

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?

PHP Programando com Orientação a Objetos

Programação com Acesso a Banco de Dados

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Juliano Niederauer. Novatec

Aplicabilidade: visão geral

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Introdução Banco de Dados

Escrito por Sáb, 15 de Outubro de :19 - Última atualização Seg, 26 de Março de :32

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Aula 1 Acesso a Banco de Dados

Programação Web Prof. Wladimir

PROJETO PEDAGÓGICO DE CURSOS

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Persistência e Banco de Dados em Jogos Digitais

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Sistemas de Banco de Dados

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

Curso de Aprendizado Industrial Desenvolvedor WEB

Leonardo Gresta Paulino Murta

Banco de Dados. Maurício Edgar Stivanello

Programação Orientada a Objetos (DPADF 0063)

Docente: Éberton da Silva Marinho

GBD. Introdução PROF. ANDREZA S. AREÃO

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

Desenvolvendo Websites com PHP

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

Integrantes: Catarino Rodrigues Data: 26/10/2012. Leandro de Matos Pereira. Leandro dos Santos Marciano. Ramon Alves de Souza

WebApps em Java com uso de Frameworks

Banco de Dados I. Introdução. Fabricio Breve

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

Desenvolvimento de Aplicações para Internet Aula 9

Conhecendo os usuários de um Sistema de Banco de Dados

Introdução a Sistemas de Bancos de Dados

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

Python Acessando o Banco de Dados MySQL

Programação Web com Webdev 19 Julio Cesar Pedroso Conteúdo

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br

SGBD ITB 1.INTRODUÇÃO 1.INTRODUÇÃO Conceito SGBD: Sistema gerenciador de banco de dados Constituição SGBD

Introdução a Informática. Prof.: Roberto Franciscatto

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Sistemas Gerenciadores de Bancos de Dados

HIBERNATE EM APLICAÇÃO JAVA WEB

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

Introdução a Banco de Dados Aula 03. Prof. Silvestri

Ferramentas de Administração. PostgreSQL

Documento de Arquitetura

Integrando Java com Banco de Dados

Noções de. Microsoft SQL Server. Microsoft SQL Server

SQL. Ambientes de programação O catálogo do sistema. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Plano de Trabalho Docente Ensino Técnico

O uso do gestor de conteúdos plone no suporte a processos de software

Apresentamos a divisão Portal Moveleiro Tecnologia, habilitada para o desenvolvimento de projetos alinhados a estratégias de e-business.

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

INTRODUÇÃO E CONCEITOS BÁSICOS. Prof. Ronaldo R. Goldschmidt

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

18/03/2012. Formação.

BANCO DE DADOS 1 AULA 1. estrutura do curso e conceitos fundamentais. Professor Luciano Roberto Rocha. contato@lrocha.

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

Desenvolvendo Websites com PHP

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Introdução à Banco de Dados. Definição

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Gerador de aplicativos Oracle PL/SQL WEB baseado na estrutura das tabelas do. Wagner da Silva Orientando Prof. Alexander Roberto Valdameri Orientador

SISTEMA GERENCIADOR DE BANCO DE DADOS

Arquitetura de Banco de Dados

Roteiro. Conceitos e Arquitetura de Sistemas de Banco de Dados. Conceitos e Arquiteturas de Sistemas de Banco de Dados. BCC321 - Banco de Dados I

Tecnologias Web. Padrões de Projeto - Camada de Apresentação

Curso Superior de Tecnologia em BD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Desenvolvimento de Sistema WEB de Gerenciamento de Conteúdo para o Colégio Menino Jesus

Conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Transcrição:

Desenvolvimento orientado a objetos com PEAR: DB/MDB2, DB_DataObject, HTML_QuickForm e DB_DataObjectFormBuilder Adriano Gonçalves adriano.php4@gmail.com

Agenda O PEAR e suas vantagens Abstração de banco de dados com DB/MDB2 Mapeamento objetos-bd relacional com DB_DataObject Construção dinâmica de formulários com HTML_QuickForm HTML_QuickForm e Smarty Gerando formulários automaticamente com DB_DataObjectFormBuilder exemplo prático

O que é PEAR Significa PHP Extension and Application Repository Tem o propósito de prover: Uma biblioteca estruturada de de códigos open-source p/ usuários PHP Um sistema de distribuição de código e manutenção de pacotes Um padrão de codificação para PHP Um estrutura online para suportar a comunidade de usuários Resumindo: facilitar a vida do desenvolvedor

Vantagens de usar pacotes PEAR Estrutura de pacotes constantemente atualizada e mantida por vários desenvolvedores Suporte a Orientação a Objetos Códigos desenvolvidos sob um padrão alto de qualidade Instalador automático de pacotes Ótima documentação disponível Comunidade de usuários e desenvolvedores Dezenas de pacotes disponíveis, para os diversos tipos de aplicação

PEAR Variedade de pacotes

Manual do PEAR

Agenda O PEAR e suas vantagens Abstração de banco de dados com DB/MDB2 Mapeamento objetos-bd relacional com DB_DataObject Construção dinâmica de formulários com HTML_QuickForm HTML_QuickForm e Smarty Gerando formulários automaticamente com DB_DataObjectFormBuilder exemplo prático

Abstração de banco de dados Permite criar aplicações portáveis entre diferentes SGBDs Algumas bibliotecas disponíveis para PHP: ADODB DBX Metabase PEAR::DB PEAR::MDB2 APLICAÇÃO PHP CAMADA DE ABSTRAÇÃO SGBD

PEAR::DB API de banco de dados orientada a objetos Formato DSN por array ou por URL para configurar o acesso ao banco Objeto de retorno das querys Suporte a LIMIT Suporte a transações Suporte a sequências (emulado) Suporta os seguintes SGBD: fbsql, ibase, informix, msql, mssql, mysql, mysqli, oci8, odbc, pgsql, sqlite, sybase

PEAR::MDB2 Veio substituir a DB Veio da união dos recursos do Metabase e PEAR::DB Trouxe uma série de recursos novos Atualmente suporta os seguintes SGBD: MySQL, MySQLi (só no PHP5), PostgreSQL, Oracle, Frontbase, Querysim, Interbase/Firebird, MSSQL, SQLite

DB - Conectando <?php require_once 'DB.php'; $dsn = 'pgsql://usuario:senha@localhost/phpconf'; $db =& DB::connect($dsn, $options); if (PEAR::isError($db)) { } die($db->getmessage()); $db->disconnect();?>

DB - Enviando uma query... $res =& $db->query('select * FROM clients'); if (PEAR::isError($res)) { die($res->getmessage()); }?>

DB - Query com substituição de valores... $sth = $db->prepare('insert INTO numbers VALUES (?,?,?)'); $data = array(1, 'one', 'en'); $db->execute($sth, $data);?>

DB - Transações... $db->autocommit(false); $db->query('insert INTO blah (a) VALUES (11)'); $res =& $db->query('select b FROM blue'); while ($res->fetchinto($row, DB_FETCHMODE_ORDERED)) { if ($row[0] == 'problem') { $db->rollback(); } } $res->free(); $db->commit();

MDB2 - Conectando Possui três métodos: factory, singleton e connect $mdb2 =& MDB2::singleton($dsn); } if (PEAR::isError($mdb2)) { die($mdb2->getmessage());

MDB2 Enviando uma query $sql = "SELECT * FROM c lients"; $mdb2->setlimit(20, 10); $affected =& $mdb2->exec($sql); $sql = "DELETE FROM clients"; if ($mdb2->supported('limit_queries') === 'emulated') echo 'offset will likely be ignored' $mdb2->setlimit(10); $affected =& $mdb2->exec($sql);

Agenda O PEAR e suas vantagens Abstração de banco de dados com DB/MDB2 Mapeamento objetos-bd relacional com DB_DataObject Construção dinâmica de formulários com HTML_QuickForm HTML_QuickForm e Smarty Gerando formulários automaticamente com DB_DataObjectFormBuilder exemplo prático

Mapeamento objetos BD relacional Problemas: Dois universos: OO e relacional Tempo gasto para desenvolver a persistência manualmente Acoplamento com o SGBD SQL entre os objetos Manutenção menos eficiente Os SGBD relacionais estão evoluídos e confiáveis, sendo atualmente a melhor opção

Mapeamento objetos BD relacional Propostas de soluções: Objetos DAO (o programador ainda precisa programar SQL e o mapeamento) Camada de persistência

Mapeamento objetos BD relacional Algumas características que uma camada de persistência deve ter: Encapsulamento completo da camada de dados Identificadores de objeto Mecanismo de recuperação de registros Suporte a diversas versões e fabricantes de SGBDs Permitir uso de querys SQL para casos extremos Extensibilidade

Mapeamento objetos BD relacional Porque adotar esquemas de persistência Ganho de tempo na implementação Aumenta a qualidade do produto final Diminui a possibilidade de erros de codificação

PEAR::DB_DataObject Provê uma API para acessar e manipular os dados de forma simples Estrutura extensível, Orientada a Objetos Trabalha com comandos de alto nível (fetch, insert, update, delete Gera e atualiza códigos das classes das tabelas Validação básica de dados automática (como strings e inteiros) Debug bem completo, em vários níveis Suporte avançado a tabelas relacionadas

Agenda O PEAR e suas vantagens Abstração de banco de dados com DB/MDB2 Mapeamento objetos-bd relacional com DB_DataObject Construção dinâmica de formulários com HTML_QuickForm HTML_QuickForm e Smarty Gerando formulários automaticamente com DB_DataObjectFormBuilder exemplo prático

PEAR::HTML_QuickForm Provê métodos para criar, validar e processar formulários HTML Provê validação client-side (javascript) e server-side Oferece suporte a diversos tipos de campos de formulário Provê formas de personalizar a aparência do formulário com templates

PEAR::HTML_QuickForm - Exemplo (Extraído do Manual do PEAR)

PEAR::HTML_QuickForm - Exemplo

Agenda O PEAR e suas vantagens Abstração de banco de dados com DB/MDB2 Mapeamento objetos-bd relacional com DB_DataObject Construção dinâmica de formulários com HTML_QuickForm HTML_QuickForm e Smarty Gerando formulários automaticamente com DB_DataObjectFormBuilder exemplo prático

O que é o Smarty Um sistema de templates para PHP que...: Visa separar interface da lógica de programação Compila os templates em arquivos PHP, evitando processamento adicional Possui um sistema de cache para melhorar a performance Possui uma poderosa mas simples linguagem de templates Muitas outras vantagens que podem ser vistas em http://smarty.php.net/

Exemplo Utilizando o método $form->toarray() Exemplo de template

Um exemplo mais avançado...

Agenda O PEAR e suas vantagens Abstração de banco de dados com DB/MDB2 Mapeamento objetos-bd relacional com DB_DataObject Construção dinâmica de formulários com HTML_QuickForm HTML_QuickForm e Smarty Gerando formulários automaticamente com DB_DataObjectFormBuilder exemplo prático

Perguntas?

Referências PEAR Manual http://pear.php.net http://www.imasters.com.br http://www.mundooo.com.br/ http://cirofeitosa.com.br/ http://davidmintz.org/presentations/show.php/quickfo rm_and_smarty/ http://www.midnighthax.com/quickform.php Google

Contato Meu e-mail: adriano.php4@gmail.com Meu website: http://adriano.ison.com.br/