Mapeamento Objeto-Relacional da Teoria à Prática
class.Categoria.php
Bom é isso, apesar de ser bem superficial, espero que tenha ajudado.
Quero dizer que você deve ler mais sobre este assunto pois é realmente muito importante e útil.
Vale a pena programar em PHP5!
Um abraço!
<?php class CategoriaException extends Exception { } /** * Classe responsável pelo gerenciamento das informações de uma categoria * * @package MeuSistema * @subpackage Categorias * @author Diego Botelho <contato@diegobotelho.com> * @link http://www.diegobotelho.com * @date 2007-01-30 21:07:00 */ class Categoria { /** * @var int * @access private */ private $cat_id; /** * * @var string * @access private */ private $cat_nome; //---------------------------------------------------------------------- /** * Seta o valor do atributo $cat_id * @param int $intId * @access public */ public function setId($intId) { $this->cat_id = $intId; } /** * Obtém o valor do atributo $cat_id * @access public */ public function getId() { return $this->cat_id; } /** * Seta o valor do atributo $cat_nome * @param int $strId * @access public */ public function setNome($strNome) { $this->cat_nome = $strNome; } /** * Obtém o valor do atributo $cat_nome * @access public */ public function getNome() { return $this->cat_nome; } //---------------------------------------------------------------------- /** * Construtor da classe * @access public */ public function __construct() { $this->setId(""); $this->setNome(""); } /** * Destrutor da classe * @access public */ public function __destruct() { } /** * * Cadastra um nova categoria * @access public */ public function cadastrar() { try { DaoCategoria::insert($this); } catch(Exception $e) { throw new CategoriaException($e->getMessage()); } } /** * Altera uma categoria existente * @access public */ public function alterar() { try { DaoCategoria::update($this); } catch(Exception $e) { throw new CategoriaException($e->getMessage()); } } /** * Exclui uma categoria existente * @access public */ public function excluir() { try { DaoCategoria::delete($this); } catch(Exception $e) { throw new CategoriaException($e->getMessage()); } } /** * Recupera uma categoria armazenado em meio persistente * @access public */ public function carregar() { try { DaoCategoria::load($this); } catch(Exception $e) { throw new CategoriaException($e->getMessage()); } } /** * Retorna uma lista com as categorias cadastradas * @access public */ public function listar() { try { return DaoCategoria::collection($this); } catch(Exception $e) { throw new CategoriaException($e->getMessage()); } } } ?>
Bom é isso, apesar de ser bem superficial, espero que tenha ajudado.
Quero dizer que você deve ler mais sobre este assunto pois é realmente muito importante e útil.
Vale a pena programar em PHP5!
Um abraço!
Diego parabéns pelo artigo, excelente mesmo, são poucos que tem essa mentalidade de OO, muitos não sabem o que é e outros não sabem como implementar, esse seu artigo ficou muito bom, uma unica duvida que eu fiquei é de como q ficaria a implementação desse DAO, já ouvi falar disso mas não pesquisei nada ainda se puder colocar mais um artigo explanando sobre esse assunto acho q seria bem interressante, ou se tiver algum material e puder me enviar fico muito grato.
Parabéns.
Parabéns.
30/07/2007 9:11am
(~17 anos atrás)
Lembrando que o design pattern que você usou é o Active Record (http://www.martinfowler.com/eaaCatalog/activeRecord.html) e o Data Access Object (http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html).
No caso do Active Record, um ponto contra é que as rotinas de persistência estão fortemente acopladas ao objeto, o que pode não ser o cenário ideal para todas as situações. Algumas vezes é melhor separar as rotinas de cadastro, exclusão, seleção e atualização em um objeto separado. ;)