From: Sébastien CHAZALLET Date: Tue, 6 Nov 2012 13:49:58 +0000 (+0100) Subject: Rajout du modèle B X-Git-Url: http://git.inspyration.org/?p=zf2.biz%2Fgalerie.git;a=commitdiff_plain;h=744bd5c9f8684b1b2f81f9e701eaf910adfcf6f0 Rajout du modèle B --- diff --git a/module/Galerie/Module.php b/module/Galerie/Module.php index 9804a5e..3e3843d 100644 --- a/module/Galerie/Module.php +++ b/module/Galerie/Module.php @@ -12,6 +12,7 @@ use Zend\Mvc\ModuleRouteListener; use Galerie\Model\GalerieArrayTable; use Galerie\Model\GalerieATable; +use Galerie\Model\GalerieBTable; class Module implements AutoloaderProviderInterface, @@ -58,6 +59,11 @@ class Module implements $sm->get('Zend\Db\Adapter\Adapter') ); }, + 'Galerie\Model\GalerieBTable' => function($sm) { + return new GalerieBTable( + $sm->get('Zend\Db\Adapter\Adapter') + ); + }, ), ); } diff --git a/module/Galerie/src/Galerie/Controller/IndexController.php b/module/Galerie/src/Galerie/Controller/IndexController.php index c5389b1..de82f92 100644 --- a/module/Galerie/src/Galerie/Controller/IndexController.php +++ b/module/Galerie/src/Galerie/Controller/IndexController.php @@ -29,6 +29,15 @@ class IndexController extends AbstractActionController return $this->_galerieATable; } + private function _getGalerieBTable() + { + if (!$this->_galerieBTable) { + $sm = $this->getServiceLocator(); + $this->_galerieBTable = $sm->get('Galerie\Model\GalerieBTable'); + } + return $this->_galerieBTable; + } + public function indexAction() { return new ViewModel(array( @@ -36,6 +45,8 @@ class IndexController extends AbstractActionController 'GalerieArray_one' => $this->_getGalerieArrayTable()->getGalerie(1), 'GalerieA_all' => $this->_getGalerieATable()->fetchAll(), 'GalerieA_one' => $this->_getGalerieATable()->getGalerie(1), + 'GalerieB_all' => $this->_getGalerieBTable()->fetchAll(), + 'GalerieB_one' => $this->_getGalerieBTable()->getGalerie(1), )); } diff --git a/module/Galerie/src/Galerie/Model/GalerieB.php b/module/Galerie/src/Galerie/Model/GalerieB.php new file mode 100644 index 0000000..bf3507a --- /dev/null +++ b/module/Galerie/src/Galerie/Model/GalerieB.php @@ -0,0 +1,104 @@ +id = isset($data['id']) ? $data['id'] : null; + $this->id_user = isset($data['is_user']) ? $data['id_user'] : null; + $this->name = isset($data['name']) ? $data['name'] : null; + $this->description = isset($data['description']) ? $data['description'] : null; + $this->created = isset($data['created']) ? $data['created'] : null; + $this->updated = isset($data['updated']) ? $data['updated'] : null; + } + + public function toArray($data) + { + return array( + 'id' => $this->id, + 'is_user' => $this->id_user, + 'name' => $this->name, + 'description' => $this->description, + 'created' => $this->created, + 'updated' => $this->updated, + ); + } + + + public function getId() + { + return $this->id; + } + + public function setId($id) + { + $this->id = $id; + return $this; + } + + public function getIdUser() + { + return $this->id_user; + } + + public function setIdUser($id_user) + { + $this->id_user = $id_user; + return $this; + } + + public function getName() + { + return $this->name; + } + + public function setName($name) + { + $this->name = $name; + return $this; + } + + public function getDescription() + { + return $this->description; + } + + public function setDescription ($description) + { + $this-> description = $description; + return $this; + } + + public function getCreated() + { + return $this->created; + } + + public function setCreated($created) + { + $this->created = $created; + return $this; + } + + public function getUpdated() + { + return $this->updated; + } + + public function setUpdated($updated) + { + $this->updated = $updated; + return $this; + } + +} diff --git a/module/Galerie/src/Galerie/Model/GalerieBTable.php b/module/Galerie/src/Galerie/Model/GalerieBTable.php new file mode 100644 index 0000000..6f8a3d8 --- /dev/null +++ b/module/Galerie/src/Galerie/Model/GalerieBTable.php @@ -0,0 +1,82 @@ +adapter = $adapter; + + // Utilisation du patron de conception Prototype + // pour la création des objets ResultSet + $this->resultSetPrototype = new ResultSet(); + $this->resultSetPrototype->setArrayObjectPrototype( + new GalerieB() + ); + + // Initialisation du gestionnaire + $this->initialize(); + } + + public function fetchAll() + { + return $this->select(); + } + + public function getGalerie($id) + { + if ($id === null) { + $row = null; + } else { + $row = $this->select(array( + 'id' => (int) $id, + ))->current(); + } + if (!$row) { + throw new \Exception("cannot get row $id in table 'galerie'"); + } + return $row; + } + + public function saveGalerie(GalerieA $galerie) + { + if ($galerie->getId() === null) { + $this->insert( + array( + 'id_user' => $galerie->getName(), + 'name' => $galerie->getName(), + 'description' => $galerie->getDescription(), + ) + ); + } elseif ($this->getGalerie($galerie->getId())) { + $this->update( + array( + 'name' => $galerie->getName(), + 'description' => $galerie->getDescription(), + ), + array( + 'id' => $galerie->getId(), + ) + ); + } else { + throw new \Exception("cannot update row {$galerie->getId()} in table 'galerie'"); + } + } + + public function deleteGalerie($id) + { + $this->delete(array( + 'id' => (int) $id + ) + ); + } + +} diff --git a/module/Galerie/view/galerie/index/index.phtml b/module/Galerie/view/galerie/index/index.phtml index 096de70..254f478 100644 --- a/module/Galerie/view/galerie/index/index.phtml +++ b/module/Galerie/view/galerie/index/index.phtml @@ -1,24 +1,37 @@

vue back-office d’une galerie : translate('index', 'galerie'); ?>

-

Affichage des galeries avec GalerieArray (test du fetchAll) :

+ +

GalerieArray

+

test de fetchAll()

count(); ?>
toArray()); ?>
-

Affichage d'une galerie avec GalerieArray (test du getGalerie) :

+

test de getGalerie

Identifiant :

- - -

Affichage des galeries avec GalerieA (test du fetchAll) :

+

GalerieA

+

test de fetchAll()

count(); ?>
toArray()); ?>
-

Affichage d'une galerie avec GalerieA (test du getGalerie) :

+

test de getGalerie

Identifiant : id; ?>

+ + +

GalerieB

+

test de fetchAll()

+ +
count(); ?>
+
toArray()); ?>
+ +

test de getGalerie

+ +
+

Identifiant : getId(); ?>