Rajout modèle Contact (avec Hydrator)
authorSébastien CHAZALLET <s.chazallet@gmail.com>
Sat, 1 Dec 2012 11:04:43 +0000 (12:04 +0100)
committerSébastien CHAZALLET <s.chazallet@gmail.com>
Sat, 1 Dec 2012 11:04:43 +0000 (12:04 +0100)
module/Galerie/Module.php
module/Galerie/src/Galerie/Model/Contact.php [new file with mode: 0644]
module/Galerie/src/Galerie/Model/contact.defaultinputfilter.config.php [new file with mode: 0644]

index a151295..514869b 100644 (file)
@@ -11,9 +11,15 @@ use Zend\ModuleManager\Feature\ViewHelperProviderInterface;
 use Zend\EventManager\EventInterface;
 use Zend\Mvc\ModuleRouteListener;
 
+use Zend\Stdlib\Hydrator\ClassMethods as HydratorClassMethods;
+use Zend\Db\ResultSet\HydratingResultSet;
+use Zend\Db\TableGateway\TableGateway;
+
 
 use Galerie\Model\GalerieTable;
 use Galerie\Model\GalerieInfoTable;
+use Galerie\Model\Contact;
+
 use Galerie\Form\GalerieForm;
 use Galerie\Export\GalerieWorkbook;
 use Galerie\Mail\MailSender;
@@ -90,6 +96,18 @@ class Module implements
                         'gallery'
                     );
                 },
+                'Galerie\Model\ContactTable' => function($sm) {
+                    return new TableGateway(
+                        'contact',
+                        Zend\Db\TableGateway\TableGateway
+                        null,
+                        new HydratingResultSet(
+                            new HydratorClassMethods,
+                            new Contact
+                        );
+                    );
+                
+                }
             ),
         );
     }
diff --git a/module/Galerie/src/Galerie/Model/Contact.php b/module/Galerie/src/Galerie/Model/Contact.php
new file mode 100644 (file)
index 0000000..71bb526
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+
+namespace Galerie\Model;
+
+use Zend\InputFilter\Factory as InputFactory;
+use Zend\InputFilter\InputFilter;
+use Zend\InputFilter\InputFilterInterface;
+use Zend\InputFilter\InputFilterAwareInterface;
+
+class Contact implements InputFilterAwareInterface
+{
+
+    public $id_user_owner;
+    public $id_user_contact;
+
+    protected $inputFilter;
+
+
+    public function setInputFilter(InputFilterInterface $inputfilter)
+    {
+        throw \Exception('Cette entité ne permet pas à des objets externes de modifier ses filtres');
+    }
+
+    public function getInputFilter()
+    {
+        if (!$this->inputFilter) {
+            $this->inputFilter = include __DIR__ . '/contact.defaultinputfilter.config.php';
+        }
+        return $this->inputFilter;
+    }
+
+}
+
+
+
+use Zend\Stdlib\Hydrator;
+$hydrator = new Hydrator\ArraySerializable();
+
+$object = new ArrayObject(array());
+
+$hydrator->hydrate($someData, $object);
+
+// or, if the object has data we want as an array:
+$data = $hydrator->extract($object);
diff --git a/module/Galerie/src/Galerie/Model/contact.defaultinputfilter.config.php b/module/Galerie/src/Galerie/Model/contact.defaultinputfilter.config.php
new file mode 100644 (file)
index 0000000..d8fdcab
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+return array(
+    array(
+        'id_user_contact' => 'id',
+        'required' => true,
+        'filters' => array(
+            array('name' => 'Int'),
+        ),
+    ),
+);