• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
34
0
0

Texto

(1)

Desenvolvimento orientado a objetos com

PEAR:

DB/MDB2, DB_DataObject,

HTML_QuickForm e

DB_DataObjectFormBuilder

Adriano Gonçalves adriano.php4@gmail.com

(2)

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

(3)

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

(4)

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

(5)
(6)
(7)

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

(8)

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::DBPEAR::MDB2 SGBD CAMADA DE ABSTRAÇÃO APLICAÇÃO PHP

(9)

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

(10)

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

(11)

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(); ?>

(12)

DB - Enviando uma query

...

$res =& $db->query('SELECT * FROM clients'); if (PEAR::isError($res)) {

die($res->getMessage()); }

(13)

DB - Query com substituição de valores

...

$sth = $db->prepare('INSERT INTO numbers VALUES (?, ?, ?)');

$data = array(1, 'one', 'en'); $db->execute($sth, $data); ?>

(14)

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();

(15)

MDB2 - Conectando

● Possui três métodos: factory, singleton e connect

$mdb2 =& MDB2::singleton($dsn); if (PEAR::isError($mdb2)) {

die($mdb2->getMessage()); }

(16)

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);

(17)

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

(18)

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,

(19)

Mapeamento objetos–BD relacional

Propostas de soluções:

– Objetos DAO (o programador ainda precisa

programar SQL e o mapeamento)

(20)

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

(21)

Mapeamento objetos–BD relacional

● Porque adotar esquemas de persistência

– Ganho de tempo na implementação

– Aumenta a qualidade do produto final

(22)

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

(23)

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

(24)

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

(25)

PEAR::HTML_QuickForm - Exemplo

(26)
(27)

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

(28)

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

(29)

Exemplo

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

(30)
(31)

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

(32)
(33)

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

(34)

Contato

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

Referências

Documentos relacionados

A este respeito Valene Smith (1989) refere que a atividade turística nem sem- pre é negativa ou prejudicial para as culturas e povos locais, pois muitas vezes os turistas

Em cada câmara técnica, o resumo de projeto e o projeto técnico-financeiro serão avaliados por uma comissão julgadora composta por pelo menos seis (06) de seus

Em caso de ligação do cabo de sinal coletivo de avaria ao potencial de rede: ◾ Fase SSM = Fase L1 6.6 Ligar PERIGO Existe perigo de morte devido a corrente elétrica durante

Além de possibilitar o escrutínio das “peculiaridades do racismo à brasileira que, como todos os racismos, tem armadilhas que não podem ser evitadas

Formada em Psicologia e Doutorado em Ciências pelo Departamento de Psiquiatria do Hospital das Clínícas da Faculdade de Medicina da Uni- versidade de São Paulo.. Psicóloga

Desta forma, a bebida láctea elaborada neste estudo apresentou características probióticas, prebióticas e antioxidantes e possibilitou a utilização de soro de

Diante da mudança histórica acima referida, e para compreendê-la melhor, têm sentido adotar a distinção proposta por Ruy Fausto – dentro da tradição da análise

Equipa (desde 2002) Nuno Graça Moura Ricardo Tedim João Borges Bruno Guimarães Luísa Rosas Vicente Brito Cátia Bernardo Rita Machado Sofia Ferreira da Silva Carlos Castro