File: /var/www/vhosts/creativefellows.nl/mygeomil.creativefellows.nl/12052025/config/container.php
<?php
//use App\Routing\JwtAuth;
use App\Factory\LoggerFactory;
use App\Domain\User\Data\UserData;
use App\Domain\Storage\SessionStorage;
use App\Domain\Storage\GoodyStorage;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Container\ContainerInterface;
use Slim\App;
use Slim\Middleware\ErrorMiddleware;
use Slim\Views\PhpRenderer;
use Slim\Interfaces\RouteParserInterface;
use Slim\Factory\AppFactory;
//use Slim\Interfaces\RouteParserInterface;
//use Slim\Interfaces\RouteResolverInterface;
return [
'settings' => function (){
$default_settings = require __DIR__ . '/settings.php';
$user_settings = require __DIR__ . '/settings_user.php';
$merged = array_merge($default_settings, $user_settings);
return $merged;
},
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();
},
UserData::class => function (ContainerInterface $container){
$data = [
"user_id" => $_SESSION["user_id"],
"company_id" => $_SESSION["company_id"],
"company_name" => $_SESSION['company_name'],
"partner_id" => $_SESSION['partner_id'],
"role" => $_SESSION["role"],
"access" => $_SESSION["user_access"],
"full_name" => $_SESSION["full_name"],
"email" => $_SESSION["email"],
"rebate" => $_SESSION["rebate"],
"discount" => $_SESSION["discount"],
"discount_service" => $_SESSION['discount_service'],
"session_id" => $_SESSION["session_id"],
"address_id" => $_SESSION["address_id"],
"tour_active" => $_SESSION["tour_active"],
"password_expired" => $_SESSION["password_expired"],
"geomiles" => $_SESSION["geomiles"],
"tour" => false,
];
return new UserData( $data );
},
SessionStorage::class => function (ContainerInterface $container) {
return new SessionStorage("cart");
},
GoodyStorage::class => function (ContainerInterface $container) {
return new GoodyStorage("goodies");
},
];