Diz que segue o padrão da comunidade, mas na verdade só segue o padrão próprio kkkkkkkkkkk vemos muito!
Código PHP:
class Noticias
{
protected $titulo;
protected $autor;
protected $id;
public function setTitulo($titulo)
{
if( empty($titulo) )
{
/* tratamento é feito aqui nos setters*/
throw new Exception("Titulo em branco");
}
$this->titulo = $titulo;
return $this;
}
public function setId($id)
{
$this->id = $id;
return $this;
}
public function setAutor($autor)
{
$this->autor = $autor;
return $this;
}
public function getTitulo()
{
return $this->titulo;
}
public function getAutor()
{
return $this->autor;
}
public function getId()
{
return $this->id;
}
}
Código PHP:
class NoticiasMap
{
public function select()
{
$select = mysql_query("SELECT * FROM noticias");
$objs = array();
while($row = mysql_fetch_object($select))
{
$obj = new Noticias();
$obj->setTitulo($row->titulo)
->setAutor($row->autor)
->setId($row->id);
$objs[] = $obj;
}
return $objs;
}
public function save(Noticias $noticia)
{
if(null === ($id = $noticia->getId()))
{
return mysql_query(sprintf("INSERT INTO noticias VALUES (NULL, '%s','%s')",
$noticia->getTitulo(),
$noticia->getAutor()
));
}
else
{
return mysql_query(sprintf("UPDATE noticias set titulo='%s', autor='%s' WHERE id=%d",
$noticia->getTitulo(),
$noticia->getAutor(), $id
));
}
}
}
Fiz básico, só para vc ter uma ideia maior de POO. Tem como reduzir (e muito) o meu código. Mas para estudos esta perfeito! Não testei, mas deve funcionar.
Abraços!