Mapeamento Objeto-Relacional com PEAR::DataObject

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Mapeamento Objeto-Relacional com PEAR::DataObject - Presentation Transcript

    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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 \"Livro: $i de $num:{$livro->titulo}<br>\"; $i++; } ?> Almir Neto almirneto@gmail.com
    12. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Adicionando condições <?php $livro = DB_DataObject::factory('livro'); $livro->whereAdd(\"livro.titulo LIKE 'GOPHP%'\"); $num = $livro->find(); $i = 1; while ($livro->fetch()) { echo \"Livro: $i de $num: {$livro->titulo}<br>\"; $i++; } ?> Almir Neto almirneto@gmail.com
    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. 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. 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. 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. 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. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Método Fetch function fetch() { $ret = parent::fetch(); if ($ret === false) return false; require_once(\"cliente/cliente.php\"); $cliente = DB_DataObject::Factory('cliente'); $cliente->get($this->cliente_id); $this->setCliente($cliente); require_once(\"livro/livro.php\"); $livro = DB_DataObject::Factory('livro'); $livro->get($this->livro_id); $this->setLivro($livro); return true; } Almir Neto almirneto@gmail.com
    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. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Agradecimentos Almir Neto almirneto@gmail.com
    21. Mapeamento objeto-relacional em PHP com PEAR::Data_Object Fim Almir Neto almirneto@gmail.com

    + manuellemosmanuellemos, 2 years ago

    custom

    787 views, 0 favs, 0 embeds more stats

    Palestra dada por Almir Neto no CONAPHP 2008 - Cong more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 787
      • 787 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 20
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories