Rajout des premiers modèles GalerieA, GalerieArray
[zf2.biz/galerie.git] / module / Galerie / src / Galerie / Model / GalerieE3Table.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 class GalerieTableE extends AbstractTableGateway
9 {
10     public $table = 'galerie';
11
12     public function __construct(Adapter $adapter)
13     {
14         // Composition avec l'adaptateur
15         $this->adapter = $adapter;
16
17         // Utilisation du patron de conception Prototype
18         // pour la création des objets ResultSet
19         $this->resultSetPrototype = new ResultSet();
20         $this->resultSetPrototype->setArrayObjectPrototype(
21             new Galerie()
22         );
23
24         // Initialisation du gestionnaire
25         $this->initialize();
26     }
27
28     public function fetchAll()
29     {
30         return $this->select();
31     }
32
33     public function getGalerie($id)
34     {
35         if ($id === null) {
36             $row = null;
37         } else {
38             $row = $this->select(array(
39                 'id' => (int) $id
40             ))->current();
41         }
42         if (!$row) {
43             throw new \Exception("cannot get row $id in table 'galerie'");
44         }
45         return $row;
46     }
47
48     public saveGalerie(Galerie $galerie)
49     {
50         if ($galerie->id === null) {
51             $this->insert(
52                 $galerie->toUpdatableArray()
53             );
54         } elseif ($this->getGalerie($galerie->id)) {
55             $this->update(
56                 $galerie->toUpdatableArray(),
57                 $galerie->toPrimaryArray()
58             );
59         } else {
60             throw new \Exception("cannot update row $galerie->id in table 'galerie'");
61         }
62     }
63
64     public function deleteGalerie($id)
65     {
66         $this->delete(array(
67                 'id' => (int) $id
68             )
69         );
70     }
71
72 }