HEX
Server: Apache
System: Linux v38079.2is.nl 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: democfellows (10015)
PHP: 8.1.34
Disabled: opcache_get_status
Upload Files
File: /var/www/vhosts/creativefellows.nl/werkenbijergatis.creativefellows.nl/config/container.php
<?php

use App\Factory\LoggerFactory;
use App\Domain\Language\LanguageData;
use App\Domain\Cookie\CookieData;

use App\Cache\CacheInterface;

use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Container\ContainerInterface;
use Slim\App;
use Slim\Middleware\ErrorMiddleware;
use Slim\Factory\AppFactory;
use Slim\Views\Twig;
use Slim\Views\TwigMiddleware;


return [
	'settings' => function () {
		return require __DIR__ . '/settings.php';
	},
		
	App::class => function (ContainerInterface $container) {
		AppFactory::setContainer($container);
		return AppFactory::create();
	},
		
	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);
	},
	
/*	CookieData::class => function (ContainerInterface $container)
	{
		$settings = $container->get('settings')['localization']["cookies"];
		return new CookieData($settings);
	},*/
	
	Twig::class => function (ContainerInterface $container) {
		$settings = $container->get('settings');
		
		$twigSettings 		= $settings['twig'];
		$options 			= $twigSettings['options'];
		$options['cache'] 	= $options['cache_enabled'] ? $options['cache_path'] : false;
		$twig 				= Twig::create($twigSettings['paths'], $options);
		
		if ($settings['mode'] === 'DEVELOPMENT'){
			$twig->addExtension(new \Twig\Extension\DebugExtension());
		}
		
		$twig->addExtension(new \Twig\Extra\Intl\IntlExtension());
		
		return $twig;
	},
	
	TwigMiddleware::class => function (ContainerInterface $container) {
		return TwigMiddleware::createFromContainer(
			$container->get(App::class),
			Twig::class
		);
	},
	


];