Rajout modèle Contact (avec Hydrator)
[zf2.biz/galerie.git] / module / Galerie / Module.php
1 <?php
2
3 namespace Galerie;
4
5 use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
6 use Zend\ModuleManager\Feature\ConfigProviderInterface;
7 use Zend\ModuleManager\Feature\BootstrapListenerInterface;
8 use Zend\ModuleManager\Feature\ServiceProviderInterface;
9 use Zend\ModuleManager\Feature\ViewHelperProviderInterface;
10
11 use Zend\EventManager\EventInterface;
12 use Zend\Mvc\ModuleRouteListener;
13
14 use Zend\Stdlib\Hydrator\ClassMethods as HydratorClassMethods;
15 use Zend\Db\ResultSet\HydratingResultSet;
16 use Zend\Db\TableGateway\TableGateway;
17
18
19 use Galerie\Model\GalerieTable;
20 use Galerie\Model\GalerieInfoTable;
21 use Galerie\Model\Contact;
22
23 use Galerie\Form\GalerieForm;
24 use Galerie\Export\GalerieWorkbook;
25 use Galerie\Mail\MailSender;
26
27 use Custom\View\Helper\Format;
28 use Custom\Model\PairManager;
29
30
31 class Module implements
32     AutoloaderProviderInterface,
33     ConfigProviderInterface,
34     BootstrapListenerInterface,
35     ServiceProviderInterface,
36     ViewHelperProviderInterface
37 {
38
39     public function getAutoloaderConfig() 
40     { 
41         return array( 
42             'Zend\Loader\ClassMapAutoloader' => array( 
43                 __DIR__ . '/autoload_classmap.php', 
44             ), 
45             'Zend\Loader\StandardAutoloader' => array( 
46                 'namespaces' => array( 
47                     __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, 
48                 ), 
49             ), 
50         ); 
51     }
52
53     public function getConfig()
54     {
55         return include __DIR__ . '/config/module.config.php';
56     }
57
58     public function onBootstrap(EventInterface $e)
59     {
60         $translator = $e->getApplication()->getServiceManager()->get('translator');
61         \Zend\Validator\AbstractValidator::setDefaultTranslator($translator, 'val');
62     }
63
64     public function getServiceConfig()
65     {
66         $config = $this->getConfig();
67         return array(
68             'factories' => array(
69                 'Galerie\Model\GalerieTable' => function($sm) {
70                     return new GalerieTable(
71                         $sm->get('Zend\Db\Adapter\Adapter')
72                     );
73                 },
74                 'Galerie\Model\GalerieInfoTable' => function($sm) {
75                     return new GalerieInfoTable(
76                         $sm->get('Zend\Db\Adapter\Adapter')
77                     );
78                 },
79                 'Galerie\Form\GalerieForm' => function($sm) {
80                     $result = new GalerieForm;
81                     $result->setTranslator($sm->get('translator'), 'galerie');
82                     $result->initialize();
83                     return $result;
84                 },
85                 'Galerie\Export\GalerieWorkbook' => function ($sm) {
86                     return new GalerieWorkbook;
87                 },
88                 'Galerie\Mail\MailSender' => function($sm) use ($config) {
89                     $result = new MailSender;
90                     $result::initialize($config['mail']);
91                     return $result;
92                 },
93                 'Galerie\Model\GaleriePairTable' => function($sm) {
94                     return new PairManager(
95                         $sm->get('Zend\Db\Adapter\Adapter'),
96                         'gallery'
97                     );
98                 },
99                 'Galerie\Model\ContactTable' => function($sm) {
100                     return new TableGateway(
101                         'contact',
102                         Zend\Db\TableGateway\TableGateway
103                         null,
104                         new HydratingResultSet(
105                             new HydratorClassMethods,
106                             new Contact
107                         );
108                     );
109                 
110                 }
111             ),
112         );
113     }
114
115     public function getViewHelperConfig() 
116     { 
117         return array( 
118             'factories' => array( 
119                 'format' => function($sm) { 
120                     return new Format;
121                 }, 
122             ), 
123         ); 
124     } 
125     
126     
127     
128     
129 }