File: /var/www/vhosts/creativefellows.nl/nec.creativefellows.nl/config/container.php
<?php
use App\Factory\LoggerFactory;
use App\Domain\Language\LanguageData;
use App\Cache\CacheInterface;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Container\ContainerInterface;
use Slim\App;
use Slim\Middleware\ErrorMiddleware;
use Slim\Views\PhpRenderer;
use Slim\Factory\AppFactory;
return [
'settings' => function () {
return require __DIR__ . '/settings.php';
},
/*'localization' => function (ContainerInterface $container){
$settings = $container->get('settings')['localization'];
d($settings);
return require __DIR__ . '/labels.en.php';
},*/
App::class => function (ContainerInterface $container) {
AppFactory::setContainer($container);
return AppFactory::create();
},
PhpRenderer::class => function (ContainerInterface $container) {
return new PhpRenderer($container->get('settings')['template_path']);
},
/* RouteParserInterface::class => function (ContainerInterface $container) {
$app = $container->get(App::class);
return $app->getRouteCollector()->getRouteParser();
},*/
PDO::class => function (ContainerInterface $container) {
$settings = $container->get('settings')['db'];
$host = $settings['host'];
$dbname = $settings['database'];
$username = $settings['username'];
$password = $settings['password'];
$charset = $settings['charset'];
$flags = $settings['flags'];
$dsn = "mysql:host=$host;dbname=$dbname;charset=$charset";
return new PDO($dsn, $username, $password, $flags);
},
ErrorMiddleware::class => function (ContainerInterface $container) {
$app = $container->get(App::class);
$settings = $container->get('settings')['error'];
return new ErrorMiddleware(
$app->getCallableResolver(),
$app->getResponseFactory(),
(bool)$settings['display_error_details'],
(bool)$settings['log_errors'],
(bool)$settings['log_error_details']
);
},
ResponseFactoryInterface::class => function (ContainerInterface $container) {
return $container->get(App::class)->getResponseFactory();
},
LanguageData::class => function (ContainerInterface $container){
$settings = $container->get('settings')['localization'];
$root = $container->get('settings')['root'];
return new LanguageData($settings,$root);
},
CacheInterface::class => function (ContainerInterface $container){
$cache_folder = $container->get('settings')['cache'];
return new CacheInterface($cache_folder);
}
/*UserData::class => function (ContainerInterface $container){
$data = [
"user_id" => $_SESSION["user_id"],
"role" => $_SESSION["role"],
"access" => $_SESSION["user_access"],
"full_name" => $_SESSION["full_name"],
"session_id"=> $_SESSION["session_id"]
];
return new UserData( $data );
},*/
];