clam2021/src/dependencies.php
2021-05-13 13:04:00 -03:00

60 lines
1.7 KiB
PHP

<?php
// DIC configuration
use Symfony\Component\Yaml\Yaml;
$container = $app->getContainer();
$container['flash'] = function($c){
return new \Slim\Flash\Messages();
};
$container['renderer'] = function ($c) {
$settings = $c->get('settings')['renderer'];
$view = new Slim\Views\Twig($settings['template_path'],[
'cache' => $settings['cache_path'],
]);
$view->addExtension(new Knlv\Slim\Views\TwigMessages(
$c->get('flash')
));
$noticias = Yaml::parseFile(__DIR__."/../data/noticias.yml");
$sponsors = Yaml::parseFile(__DIR__."/../data/sponsors.yml");
$view->getEnvironment()->addGlobal('noticias',$noticias);
$view->getEnvironment()->addGlobal('sponsors',$sponsors);
return $view;
};
$container['db'] = function ($c) {
$dbconf = $c->get('settings')['db'];
try{
$pdo = new PDO('sqlite:'.$dbconf['path']);
$pdo->setAttribute( \PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION );
$pdo->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC);
$db = new DB($pdo);
if(!file_exists($dbconf['load_schema'])){
$db->loadSchema($dbconf['schema']);
touch($dbconf['load_schema']);
}
}
catch(\PDOException $e){
echo $e->getMessage();
}
return $db;
};
// monolog
$container['logger'] = function ($c) {
$settings = $c->get('settings')['logger'];
$logger = new Monolog\Logger($settings['name']);
$logger->pushProcessor(new Monolog\Processor\UidProcessor());
$logger->pushHandler(new Monolog\Handler\StreamHandler($settings['path'], $settings['level']));
return $logger;
};
/*$container['mailer'] =function ($c){
};*/