Rajout modèle Contact (avec Hydrator)
[zf2.biz/galerie.git] / module / Galerie / Module.php
index d64f1d6..514869b 100644 (file)
@@ -1,8 +1,129 @@
-namespace Galerie; 
+<?php
 
-use Zend\Mvc\ModuleRouteListener; 
-use Zend\Mvc\MvcEvent; 
+namespace Galerie;
 
-class Module 
-{ 
+use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
+use Zend\ModuleManager\Feature\ConfigProviderInterface;
+use Zend\ModuleManager\Feature\BootstrapListenerInterface;
+use Zend\ModuleManager\Feature\ServiceProviderInterface;
+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;
+
+use Custom\View\Helper\Format;
+use Custom\Model\PairManager;
+
+
+class Module implements
+    AutoloaderProviderInterface,
+    ConfigProviderInterface,
+    BootstrapListenerInterface,
+    ServiceProviderInterface,
+    ViewHelperProviderInterface
+{
+
+    public function getAutoloaderConfig() 
+    { 
+        return array( 
+            'Zend\Loader\ClassMapAutoloader' => array( 
+                __DIR__ . '/autoload_classmap.php', 
+            ), 
+            'Zend\Loader\StandardAutoloader' => array( 
+                'namespaces' => array( 
+                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, 
+                ), 
+            ), 
+        ); 
+    }
+
+    public function getConfig()
+    {
+        return include __DIR__ . '/config/module.config.php';
+    }
+
+    public function onBootstrap(EventInterface $e)
+    {
+        $translator = $e->getApplication()->getServiceManager()->get('translator');
+        \Zend\Validator\AbstractValidator::setDefaultTranslator($translator, 'val');
+    }
+
+    public function getServiceConfig()
+    {
+        $config = $this->getConfig();
+        return array(
+            'factories' => array(
+                'Galerie\Model\GalerieTable' => function($sm) {
+                    return new GalerieTable(
+                        $sm->get('Zend\Db\Adapter\Adapter')
+                    );
+                },
+                'Galerie\Model\GalerieInfoTable' => function($sm) {
+                    return new GalerieInfoTable(
+                        $sm->get('Zend\Db\Adapter\Adapter')
+                    );
+                },
+                'Galerie\Form\GalerieForm' => function($sm) {
+                    $result = new GalerieForm;
+                    $result->setTranslator($sm->get('translator'), 'galerie');
+                    $result->initialize();
+                    return $result;
+                },
+                'Galerie\Export\GalerieWorkbook' => function ($sm) {
+                    return new GalerieWorkbook;
+                },
+                'Galerie\Mail\MailSender' => function($sm) use ($config) {
+                    $result = new MailSender;
+                    $result::initialize($config['mail']);
+                    return $result;
+                },
+                'Galerie\Model\GaleriePairTable' => function($sm) {
+                    return new PairManager(
+                        $sm->get('Zend\Db\Adapter\Adapter'),
+                        'gallery'
+                    );
+                },
+                'Galerie\Model\ContactTable' => function($sm) {
+                    return new TableGateway(
+                        'contact',
+                        Zend\Db\TableGateway\TableGateway
+                        null,
+                        new HydratingResultSet(
+                            new HydratorClassMethods,
+                            new Contact
+                        );
+                    );
+                
+                }
+            ),
+        );
+    }
+
+    public function getViewHelperConfig() 
+    { 
+        return array( 
+            'factories' => array( 
+                'format' => function($sm) { 
+                    return new Format;
+                }, 
+            ), 
+        ); 
+    } 
+    
+    
+    
+    
 }