Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Dans le quickstart de Zend il y une méthode fetchAll comme ceci :
public function fetchAll()
{
$resultSet = $this->getDbTable()->fetchAll();
$entries = array();
foreach ($resultSet as $row) {
$entry = new Default_Model_Guestbook();
$entry->setId($row->id)
->setEmail($row->email)
->setComment($row->comment)
->setCreated($row->created)
->setMapper($this);
$entries[] = $entry;
}
return $entries;
}Mais j'ai vu que à chaque fois qu'on fait une classe par rapport à une table en suivant le modèle du quickstar ça devenais assez lourd et pas optimisé.
Car en fait à chaque champ dans la base on doit faire :
->setEmail($row->email) ->setComment($row->comment) ->setChamp($row->champ) ->setChamp($row->champ) ->setChamp($row->champ) ->setChamp($row->champ) ->setChamp($row->champ)
Donc je me suis lancer dans des améliorations mais comme je suis pas au dessus des personnes qui ont fait le quickstar je vous demande conseils/approbations/améliorations
En partant de la class du quickstar :
Dans la class Mapper :
public function fetchAll($condition) {
$resultSet = $this->getDbTable()->fetchAll();
$entries = array();
foreach ($resultSet as $row) {
$entry = new Backend_Model_Guestbook();
$entry
->SetObjectToForm($row->toArray());
->setMapper($this);
$entry ->setOptions($entry ->get('ObjectToForm'));
$entries [] = $entry ;
}
return $blacklists;
}Dans la class new Backend_Model_Guestbook :
//Déclaration d'un nouvelle variable protected $_ObjectToForm = "" ;
J'ai modifier un peu la méthode setOptions :
public function setOptions(array $options){
foreach ($options as $key => $value) {
if(property_exists($this, '_'.$key))
$this->setVar($key,$value);
}
return $this;
}Et on peut faire la même chose pour la méthode find()
De plus la variable ObjectToForm me sert pour remplir les champs des Forms.
Par contre j'ai une question est-ce obligatoire de mettre :
->setMapper($this);
Et à quoi ça sert exactement ?
Merci les Zender's pour vos commentaires
Dernière modification par GueloSuperStar (09-12-2009 12:36:57)
Hors ligne
UP merci les Zender's
Hors ligne