Rajout du modèle C
[zf2.biz/galerie.git] / module / Galerie / src / Galerie / Model / GalerieCTable.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 GalerieCTable 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 GalerieC()
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(GalerieC $galerie)
50     {
51         if ($galerie->id === null) {
52             $this->insert(
53                 $galerie->toUpdatableArray()
54             );
55         } elseif ($this->getGalerie($galerie->id)) {
56             $this->update(
57                 $galerie->toUpdatableArray(),
58                 $galerie->toPrimaryArray()
59             );
60         } else {
61             throw new \Exception("cannot update row {$galerie->id} in table 'galerie'");
62         }
63     }
64
65     public function deleteGalerie($id)
66     {
67         $this->delete(array(
68                 'id' => (int) $id
69             )
70         );
71     }
72
73 }