/
bootstrap.php
55 lines (40 loc) · 1.3 KB
/
bootstrap.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
use Igorw\Trashbin\Storage;
use Igorw\Trashbin\Validator;
use Igorw\Trashbin\Parser;
use Predis\Silex\PredisServiceProvider;
use Silex\Provider\TwigServiceProvider;
use Silex\Provider\UrlGeneratorServiceProvider;
use Symfony\Component\Finder\Finder;
/* prevent direct access */
// @codeCoverageIgnoreStart
if (!$app) {
exit;
}
// @codeCoverageIgnoreEnd
$app->register(new TwigServiceProvider(), array(
'twig.path' => __DIR__.'/../views',
'twig.options' => array('cache' => __DIR__.'/../cache/twig', 'debug' => true),
));
$app->register(new UrlGeneratorServiceProvider());
$app->register(new PredisServiceProvider());
$app['catch_exceptions'] = true;
$app['app.languages'] = $app->share(function () {
$languages = array();
$finder = new Finder();
foreach ($finder->name('*.min.js')->in(__DIR__.'/../web/shjs/lang') as $file) {
if (preg_match('#sh_(.+).min.js#', basename($file), $matches)) {
$languages[] = $matches[1];
}
}
return $languages;
});
$app['app.storage'] = $app->share(function () use ($app) {
return new Storage($app['predis']);
});
$app['app.validator'] = $app->share(function () {
return new Validator();
});
$app['app.parser'] = $app->share(function () use ($app) {
return new Parser($app['app.languages']);
});