Exemple
Un manager sera très souvent composé des propriétés et méthodes suivantes :
class ObjectManager
{
private $link;
public function __construct($link)
{
$this->link = $link;
}
public function create($property1, $property2, $property3)
{
$object = new Object($this->link);
$object->setProperty1($property1);
$object->setProperty2($property2);
$object->setProperty3($property3);
$property1 = mysqli_real_escape_string($this->link, $object->getProperty1());
$property2 = mysqli_real_escape_string($this->link, $object->getProperty2());
$property3 = intval($object->getProperty3());
$request = "INSERT INTO object (property1, property2, property3) ";
$request .= "VALUES('".$property1."', '".$property2."', '".$property3."')";
mysqli_query($this->link, $request);
if ($res)
return $this->select(mysqli_insert_id($this->link));
else
throw new Exception("Internal server error");
}
public function delete($id)
{
$request = "DELETE FROM object WHERE id='".intval($id)."'";
mysqli_query($this->link, $request);
}
public function update($object)
{
$property1 = mysqli_real_escape_string($this->link, $object->getProperty1());
$property2 = mysqli_real_escape_string($this->link, $object->getProperty2());
$property3 = intval($object->getProperty3());
$request = "UPDATE object SET ";
$request .= "property1='".$property1."' ";
$request .= "property2='".$property2."' ";
$request .= "property3='".$property3."' ";
$request .= "WHERE id='".$object->getId()."'";
mysqli_query($this->link, $request);
}
public function select($id)
{
$request = "SELECT * FROM object WHERE id='".intval($id)."'";
$res = mysqli_query($this->link, $request);
$object = mysqli_fetch_object($res, 'Object', array($this->link));
return $object;
}
public function selectAll()
{
$request = "SELECT * FROM object";
$res = mysqli_query($this->link, $request);
$resultat = array();
while ($object = mysqli_fetch_object($res, 'Object', array($this->link)))
{
$resultat[] = $object;
}
return $resultat;
}
}
Pour instancier (et donc créer le manager) il suffira de :
$objectManager = new ObjectManager($link);