Rajout du modèle B
[zf2.biz/galerie.git] / module / Galerie / src / Galerie / Model / GalerieBTable.php
1 <?php
2 namespace Galerie\Model;
3
4 use Zend\Db\Adapter\Adapter;
5 use Zend\Db\ResultSet\ResultSet;
6 use Zend\Db\TableGateway\AbstractTableGateway;
7
8
9 class GalerieBTable extends AbstractTableGateway
10 {
11     public $table = 'gallery';
12
13     public function __construct(Adapter $adapter)
14     {
15         // Composition avec l'adaptateur
16         $this->adapter = $adapter;
17
18         // Utilisation du patron de conception Prototype
19         // pour la création des objets ResultSet
20         $this->resultSetPrototype = new ResultSet();
21         $this->resultSetPrototype->setArrayObjectPrototype(
22             new GalerieB()
23         );
24
25         // Initialisation du gestionnaire
26         $this->initialize();
27     }
28
29     public function fetchAll()
30     {
31         return $this->select();
32     }
33
34     public function getGalerie($id)
35     {
36         if ($id === null) {
37             $row = null;
38         } else {
39             $row = $this->select(array(
40                 'id' => (int) $id,
41             ))->current();
42         }
43         if (!$row) {
44             throw new \Exception("cannot get row $id in table 'galerie'");
45         }
46         return $row;
47     }
48
49     public function saveGalerie(GalerieA $galerie)
50     {
51         if ($galerie->getId() === null) {
52             $this->insert(
53                 array(
54                     'id_user' => $galerie->getName(),
55                     'name' => $galerie->getName(),
56                     'description' => $galerie->getDescription(),
57                 )
58             );
59         } elseif ($this->getGalerie($galerie->getId())) {
60             $this->update(
61                 array(
62                     'name' => $galerie->getName(),
63                     'description' => $galerie->getDescription(),
64                 ),
65                 array(
66                     'id' => $galerie->getId(),
67                 )
68             );
69         } else {
70             throw new \Exception("cannot update row {$galerie->getId()} in table 'galerie'");
71         }
72     }
73
74     public function deleteGalerie($id)
75     {
76         $this->delete(array(
77                 'id' => (int) $id
78             )
79         );
80     }
81
82 }