Rajout d'un fil RSS
[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 use Zend\Log\Logger;
19 use Zend\Log\Writer\Stream as LogStream;
20 use Zend\Log\Writer\FirePhp as LogFirePhp;
21 use \Zend\Log\Writer\FirePhp\FirePhpBridge;
22
23 use Galerie\Model\GalerieTable;
24 use Galerie\Model\GalerieInfoTable;
25 use Galerie\Model\GalerieInfoRssTable;
26 use Galerie\Model\Contact;
27
28 use Galerie\Form\GalerieForm;
29 use Galerie\Export\GalerieWorkbook;
30 use Galerie\Mail\MailSender;
31
32 use Custom\View\Helper\Format;
33 use Custom\Model\PairManager;
34
35 require_once '/usr/share/php/FirePHPCore/FirePHP.class.php';
36
37 class Module implements
38     AutoloaderProviderInterface,
39     ConfigProviderInterface,
40     BootstrapListenerInterface,
41     ServiceProviderInterface,
42     ViewHelperProviderInterface
43 {
44
45     public function getAutoloaderConfig() 
46     { 
47         return array( 
48             'Zend\Loader\ClassMapAutoloader' => array( 
49                 __DIR__ . '/autoload_classmap.php', 
50             ), 
51             'Zend\Loader\StandardAutoloader' => array( 
52                 'namespaces' => array( 
53                     __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, 
54                 ), 
55             ), 
56         ); 
57     }
58
59     public function getConfig()
60     {
61         return include __DIR__ . '/config/module.config.php';
62     }
63
64     public function onBootstrap(EventInterface $e)
65     {
66         $translator = $e->getApplication()->getServiceManager()->get('translator');
67         \Zend\Validator\AbstractValidator::setDefaultTranslator($translator, 'val');
68     }
69
70     public function getServiceConfig()
71     {
72         $config = $this->getConfig();
73         return array(
74             'factories' => array(
75                 'Galerie\Model\GalerieTable' => function($sm) {
76                     return new GalerieTable(
77                         $sm->get('Zend\Db\Adapter\Adapter')
78                     );
79                 },
80                 'Galerie\Model\GalerieInfoTable' => function($sm) {
81                     return new GalerieInfoTable(
82                         $sm->get('Zend\Db\Adapter\Adapter')
83                     );
84                 },
85                 'Galerie\Model\GalerieInfoRssTable' => function($sm) {
86                     return new GalerieInfoRssTable(
87                         $sm->get('Zend\Db\Adapter\Adapter')
88                     );
89                 },
90                 'Galerie\Form\GalerieForm' => function($sm) {
91                     $result = new GalerieForm;
92                     $result->setTranslator($sm->get('translator'), 'galerie');
93                     $result->initialize();
94                     return $result;
95                 },
96                 'Galerie\Export\GalerieWorkbook' => function ($sm) {
97                     return new GalerieWorkbook;
98                 },
99                 'Galerie\Mail\MailSender' => function($sm) use ($config) {
100                     $result = new MailSender;
101                     $result::initialize($config['mail']);
102                     return $result;
103                 },
104                 'Galerie\Model\GaleriePairTable' => function($sm) {
105                     return new PairManager(
106                         $sm->get('Zend\Db\Adapter\Adapter'),
107                         'gallery'
108                     );
109                 },
110                 'Galerie\Model\ContactTable' => function($sm) {
111                     return new TableGateway(
112                         'contact',
113                         Zend\Db\TableGateway\TableGateway,
114                         null,
115                         new HydratingResultSet(
116                             new HydratorClassMethods,
117                             new Contact
118                         )
119                     );
120                 },
121                 'Zend\Log' => function ($sm) {
122                     $log = new Logger();
123                     $stream_writer = new LogStream('/var/git/zf2biz/galerie/data/logs/info.log');
124                     $log->addWriter($stream_writer);
125                     $fire_writer = new LogFirePhp(new FirePhpBridge(new \FirePHP()));
126                     $log->addWriter($fire_writer);
127                     return $log;
128                 },
129             ),
130         );
131     }
132
133     public function getViewHelperConfig() 
134     { 
135         return array( 
136             'factories' => array( 
137                 'format' => function($sm) { 
138                     return new Format;
139                 }, 
140             ), 
141         ); 
142     } 
143     
144     
145     
146     
147 }