Paperyard
dependencies.php
Go to the documentation of this file.
1 <?php
2 // DIC configuration
3 
4 // get container
5 $container = $app->getContainer();
6 
7 // register component on container
8 $container['view'] = function ($c) {
9  $settings = $c->get('settings')['renderer'];
10  $view = new \Slim\Views\Twig($settings['template_path'], [
11  'cache' => false
12  ]);
13 
14  // instantiate and add Slim specific extension
15  $basePath = rtrim(str_ireplace('index.php', '', $c['request']->getUri()->getBasePath()), '/');
16  $view->addExtension(new Slim\Views\TwigExtension($c['router'], $basePath));
17  $view->addExtension(new \Paperyard\Helpers\CapTwigExtension());
18  $view->addExtension(new \Paperyard\Helpers\CensorTwigExtension());
19  $view->addExtension(new \Paperyard\Helpers\Din1355TwigExtension());
20  $view->addExtension(new Knlv\Slim\Views\TwigMessages(
21  new Slim\Flash\Messages()
22  ));
23 
24  if ($c->get('settings')['displayErrorDetails']) {
25  $view->addExtension(new Twig_Extension_Debug());
26  }
27 
28  // multi lang support
29  $view->addExtension(new Twig_Extensions_Extension_I18n());
30 
31  if (!array_key_exists('lang-code', $_SESSION)) {
32  $_SESSION["lang-code"] = "en_US";
33  }
34 
35  $locale = $_SESSION["lang-code"];
36  $locale .= ".UTF-8";
37  putenv('LC_ALL='.$locale);
38  setlocale(LC_ALL, $locale);
39  bindtextdomain("default", '../locale');
40  textdomain("default");
41 
42  return $view;
43 };
44 
45 // monolog
46 $container['logger'] = function ($c) {
47  $settings = $c->get('settings');
48  $logger = new Monolog\Logger($settings['logger']['name']);
49  $logger->pushProcessor(new Monolog\Processor\UidProcessor());
50  $logger->pushHandler(new Monolog\Handler\StreamHandler($settings['logger']['path'], Monolog\Logger::DEBUG));
51  return $logger;
52 };
53 
54 // register provider
55 $container['flash'] = function () {
56  return new \Paperyard\Helpers\PaperyardMassages();
57 };
58 
59 // not found page
60 $container['notFoundHandler'] = function ($c) {
61  return function ($request, $response) use ($c) {
62  return $c['view']->render($response, '404.twig')->withStatus(404);
63  };
64 };
65 
66 // index callable
67 $container[\Paperyard\Controllers\Misc\Index::class] = function($c) {
68  $view = $c->get('view');
69  $logger = $c->get('logger');
70  $flash = $c->get('flash');
71  return new Paperyard\Controllers\Misc\Index($view, $logger, $flash);
72 };
73 
74 // shell log callable
75 $container[\Paperyard\Controllers\Misc\Shell::class] = function($c) {
76  $view = $c->get('view');
77  $logger = $c->get('logger');
78  $flash = $c->get('flash');
79  return new Paperyard\Controllers\Misc\Shell($view, $logger, $flash);
80 };
81 
82 // archive callables
83 $container[\Paperyard\Controllers\Archive\Archive::class] = function ($c) {
84  $view = $c->get('view');
85  $logger = $c->get('logger');
86  $flash = $c->get('flash');
87  return new Paperyard\Controllers\Archive\Archive($view, $logger, $flash);
88 };
89 
90 $container[\Paperyard\Controllers\Archive\Details::class] = function($c) {
91  $view = $c->get('view');
92  $logger = $c->get('logger');
93  $flash = $c->get('flash');
94  return new Paperyard\Controllers\Archive\Details($view, $logger, $flash);
95 };
96 
97 $container[\Paperyard\Controllers\Archive\Confirm::class] = function($c) {
98  $view = $c->get('view');
99  $logger = $c->get('logger');
100  $flash = $c->get('flash');
101  return new Paperyard\Controllers\Archive\Confirm($view, $logger, $flash);
102 };
103 
104 $container[\Paperyard\Controllers\Archive\ConfirmDetails::class] = function($c) {
105  $view = $c->get('view');
106  $logger = $c->get('logger');
107  $flash = $c->get('flash');
108  return new Paperyard\Controllers\Archive\ConfirmDetails($view, $logger, $flash);
109 };
110 
111 // recipient callables
112 $container[\Paperyard\Controllers\Rule\Recipients::class] = function($c) {
113  $view = $c->get('view');
114  $logger = $c->get('logger');
115  $flash = $c->get('flash');
116  return new Paperyard\Controllers\Rule\Recipients($view, $logger, $flash);
117 };
118 
119 $container[\Paperyard\Controllers\Rule\RecipientDetails::class] = function ($c) {
120  $view = $c->get('view');
121  $logger = $c->get('logger');
122  $flash = $c->get('flash');
123  return new Paperyard\Controllers\Rule\Recipients($view, $logger, $flash);
124 };
125 
126 // sender callables
127 $container[\Paperyard\Controllers\Rule\Senders::class] = function($c) {
128  $view = $c->get('view');
129  $logger = $c->get('logger');
130  $flash = $c->get('flash');
131  return new Paperyard\Controllers\Rule\Senders($view, $logger, $flash);
132 };
133 
134 $container[\Paperyard\Controllers\Rule\SenderDetails::class] = function($c) {
135  $view = $c->get('view');
136  $logger = $c->get('logger');
137  $flash = $c->get('flash');
138  return new Paperyard\Controllers\Rule\SenderDetails($view, $logger, $flash);
139 };
140 
141 // subject callables
142 $container[\Paperyard\Controllers\Rule\Subjects::class] = function($c) {
143  $view = $c->get('view');
144  $logger = $c->get('logger');
145  $flash = $c->get('flash');
146  return new Paperyard\Controllers\Rule\Subjects($view, $logger, $flash);
147 };
148 
149 $container[\Paperyard\Controllers\Rule\SubjectDetails::class] = function($c) {
150  $view = $c->get('view');
151  $logger = $c->get('logger');
152  $flash = $c->get('flash');
153  return new Paperyard\Controllers\Rule\SubjectDetails($view, $logger, $flash);
154 };
155 
156 // archives callables
157 $container[\Paperyard\Controllers\Rule\Archives::class] = function ($c) {
158  $view = $c->get('view');
159  $logger = $c->get('logger');
160  $flash = $c->get('flash');
161  return new Paperyard\Controllers\Rule\Archives($view, $logger, $flash);
162 };
163 
164 $container[\Paperyard\Controllers\Rule\ArchiveDetails::class] = function ($c) {
165  $view = $c->get('view');
166  $logger = $c->get('logger');
167  $flash = $c->get('flash');
168  return new Paperyard\Controllers\Rule\ArchiveDetails($view, $logger, $flash);
169 };
170 
171 // pdf thumbnail generator
172 $container[\Paperyard\Controllers\Misc\Thumbnail::class] = function($c) {
173  $logger = $c->get('logger');
174  return new Paperyard\Controllers\Misc\Thumbnail($logger);
175 };
176 
177 $container[\Paperyard\Controllers\Misc\Upload::class] = function($c) {
178  $logger = $c->get('logger');
179  return new Paperyard\Controllers\Misc\Upload($logger);
180 };
$app
Definition: index.php:18
$container
Definition: dependencies.php:5
$settings
Definition: index.php:17