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