Mapeamento objeto-relacional em PHP
     com PEAR::Data_Object

    Almir Neto – almirneto@gmail.com

         CoNaPHP – C...
Mapeamento objeto-relacional em PHP
     com PEAR::Data_Object

Grupo de Desenvolvedores PHP de Goiás

    Lista de Discus...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




    O que é Mapeamento Objeto
            Relacional?
• “Map...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




                 O que é PEAR?
• O PEAR (PHP Extension and A...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




         PEAR::DB_DataObject
• Dispensa o uso de SQL para op...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




        Arquivo de Configuração
• Arquivo .ini
  [DB_DataObj...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




          Gerando as Classes PHP
    $> createTables.php /di...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




                      Classes Geradas
<?php
/**
* Table Defi...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




Arquivo de configuração gerado
[livro]
livro_id = 129
titulo...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




Buscando registros pela chave
          primária
<?php
   re...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




        Buscando vários registros
<?php
   $livro = DB_DataO...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




           Adicionando condições
<?php
   $livro = DB_DataOb...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




          Inserindo um registro
<?php

     $livro = DB_Data...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




        Atualizando um registro
<?php

     $livro = DB_Data...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




         Deletando um registro
<?php

     $livro = DB_DataO...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




Relacionamentos utilizando Join
• Arquivo BD.links.ini

 [li...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




 Relacionamentos utilizando Join
<?php
   $revisao = DB_Data...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




                   Método Fetch
function fetch()
{
   $ret =...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




                   Bibliografia
    Wikipédia - http://www.w...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




  Agradecimentos



                   Almir Neto
          ...
Mapeamento objeto-relacional em PHP com PEAR::Data_Object




               Fim



                   Almir Neto
        ...
Upcoming SlideShare
Loading in...5
×

Mapeamento Objeto-Relacional com PEAR::Data_Object

1,296

Published on

Slides used at CONAPHP 2008. The main subject is software development using a PEAR library that implements ORM

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,296
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mapeamento Objeto-Relacional com PEAR::Data_Object

  1. 1. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Almir Neto – almirneto@gmail.com CoNaPHP – CONISLI 2008 http://www.conaphp.com.br/ São Paulo, 18 e 19 de Outubro de 2008
  2. 2. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Grupo de Desenvolvedores PHP de Goiás Lista de Discussão ● Troca de Conhecimentos ● Encontros ● Palestras ● Eventos ● Networking ● http://www.gophp.com.br ●
  3. 3. Mapeamento objeto-relacional em PHP com PEAR::Data_Object O que é Mapeamento Objeto Relacional? • “Mapeamento objeto-relacional (ou ORM) é uma técnica de desenvolvimento utilizada para reduzir a impedância da programação orientada a objetos utilizando bancos de dados relacionais. As tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes correspondentes. Com esta técnica, o programador não precisa de se preocupar com os comandos em linguagem SQL; irá usar uma interface de programação simples que faz todo o trabalho de persistência.” Wikipédia Almir Neto almirneto@gmail.com
  4. 4. Mapeamento objeto-relacional em PHP com PEAR::Data_Object O que é PEAR? • O PEAR (PHP Extension and Aplication Repository) é um framework e um sistema de distribuição para a codificação de componentes em PHP. • Mais Informações: http://pear.php.net Almir Neto almirneto@gmail.com
  5. 5. Mapeamento objeto-relacional em PHP com PEAR::Data_Object PEAR::DB_DataObject • Dispensa o uso de SQL para operações CRUD(Create, Read, Update, Delete) • Portabilidade do Banco de Dados • Facilidade para manipular dados • Velocidade do desenvolvimento • Base de dados sempre documentada • Gera classes PHP com o mapeamento das tabelas • Métodos setters e getters automáticos Almir Neto almirneto@gmail.com
  6. 6. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Arquivo de Configuração • Arquivo .ini [DB_DataObject] database = mysql://user:pw@host/BD schema_location = /dataobjects/schema/ class_location = /dataobjects/ require_prefix = /dataobjects/ extends_location = DB/DataObject.php extends = DB_DataObject • Arrays PHP Almir Neto almirneto@gmail.com
  7. 7. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Gerando as Classes PHP $> createTables.php /diretorio/DataObject.ini • Arquivos criados: formato.php, livro.php, revisao.php, cliente.php, BD.ini Almir Neto almirneto@gmail.com
  8. 8. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Classes Geradas <?php /** * Table Definition for formato */ require_once 'DB/DataObject.php'; class Formato extends DB_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ var $__table = 'formato'; // table name var $formato_id; // int(4) not_null primary_key unique_key unsigned auto_increment var $titulo; // string(40) /* ZE2 compatibility trick*/ function __clone() { return $this;} /* Static get */ function staticGet($k,$v=NULL) return DB_DataObject::staticGet('Formato',$k,$v); /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE } Almir Neto ?> almirneto@gmail.com
  9. 9. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Arquivo de configuração gerado [livro] livro_id = 129 titulo = 130 descricao = 66 isbn = 130 [livro__keys] livro_id = N [cliente] cliente_id = 129 nome = 130 rua = 2 cep = 2 cidade = 2 [cliente__keys] cliente_id = N Almir Neto almirneto@gmail.com
  10. 10. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Buscando registros pela chave primária <?php require_once('DB/DataObject.php'); require('config.php'); $livro = DB_DataObject::factory('livro'); $livro->get(42); echo 'Este é o livro: '.$livro->titulo; ?> Almir Neto almirneto@gmail.com
  11. 11. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Buscando vários registros <?php $livro = DB_DataObject::factory('livro'); $livro->formato_id = 23; $num = $livro->find(); $i = 1; while ($livro->fetch()) { echo quot;Livro: $i de $num:{$livro->titulo}<br>quot;; $i++; } ?> Almir Neto almirneto@gmail.com
  12. 12. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Adicionando condições <?php $livro = DB_DataObject::factory('livro'); $livro->whereAdd(quot;livro.titulo LIKE 'GOPHP%'quot;); $num = $livro->find(); $i = 1; while ($livro->fetch()) { echo quot;Livro: $i de $num: {$livro->titulo}<br>quot;; $i++; } ?> Almir Neto almirneto@gmail.com
  13. 13. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Inserindo um registro <?php $livro = DB_DataObject::factory('livro'); $livro->titulo = 'Software Livre'; $livro->formato_id = 23; $livro_id = $livro->insert(); ?> Almir Neto almirneto@gmail.com
  14. 14. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Atualizando um registro <?php $livro = DB_DataObject::factory('livro'); $livro->get(42); $livro->titulo = 'Software Livre'; $livro->update(); ?> Almir Neto almirneto@gmail.com
  15. 15. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Deletando um registro <?php $livro = DB_DataObject::factory('livro'); $livro->get(42); $livro->delete(); ?> Almir Neto almirneto@gmail.com
  16. 16. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Relacionamentos utilizando Join • Arquivo BD.links.ini [livro] formato_id = formato:formato_id [revisao] livro_id = livro:livro_id cliente_id = cliente:cliente_id Almir Neto almirneto@gmail.com
  17. 17. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Relacionamentos utilizando Join <?php $revisao = DB_DataObject::factory('revisao'); $cliente = DB_DataObject::factory('cliente'); $revisao->livro_id = 4711; $revisao->joinAdd($cliente, 'INNER'); $revisao->selectAdd('cliente.nome'); $revisao->find(); while ($revisao->fetch()) { echo $revisao->titulo.' (Revisor: '. $revisao->nome.')<br>'; echo $revisao->descricao.'<br>'; } ?> Almir Neto almirneto@gmail.com
  18. 18. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Método Fetch function fetch() { $ret = parent::fetch(); if ($ret === false) return false; require_once(quot;cliente/cliente.phpquot;); $cliente = DB_DataObject::Factory('cliente'); $cliente->get($this->cliente_id); $this->setCliente($cliente); require_once(quot;livro/livro.phpquot;); $livro = DB_DataObject::Factory('livro'); $livro->get($this->livro_id); $this->setLivro($livro); return true; Almir Neto } almirneto@gmail.com
  19. 19. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Bibliografia Wikipédia - http://www.wikipedia.org • • PHP - http://www.php.net • PEAR - http://pear.php.net • Markus Wolff Almir Neto almirneto@gmail.com
  20. 20. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Agradecimentos Almir Neto almirneto@gmail.com
  21. 21. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Fim Almir Neto almirneto@gmail.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×