<?php use Interop\Container\ContainerInterface; return [PDO::class => function (ContainerInterface $container) { $settings = $container->get('settings')['db']; $pdo = new \PDO("mysql:host={$settings['host']};dbname={$settings['dbname']};charset=utf8", $settings['user'], $settings['password']); $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); return $pdo; }, 'Renderer' => function (ContainerInterface $container) { /* @var $themeEntity WP_Theme */ $themeEntity = $container->get(\Sarcofag\API\WP::class)->wp_get_theme(); $themeDirectory = $themeEntity->get_template_directory() . '/src/api/view'; $paths = array_map('realpath', array_merge($container->get('template.paths'), [$themeEntity->get_template() => $themeDirectory])); $renderer = new \Sarcofag\View\Renderer\SimpleRenderer($container->get('HelperManager'), $paths, $container, $container->get('Sarcofag\\API\\WP')); return $renderer; }, 'errorHandler' => WP_DEBUG ? function (ContainerInterface $container) { return new \Slim\Handlers\Error($container->get('settings')['displayErrorDetails']); } : DI\get('ErrorController'), 'notFoundHandler' => DI\get('NotFoundController'), 'notAllowedHandler' => DI\get('NotAllowedController'), 'environment' => function () { return new \Slim\Http\Environment($_SERVER); }, 'request' => function (ContainerInterface $container) { return \Slim\Http\Request::createFromEnvironment($container->get('environment')); }, 'response' => function (ContainerInterface $container) { $headers = new \Slim\Http\Headers(['Content-Type' => 'text/html; charset=UTF-8']); $response = new \Slim\Http\Response(200, $headers); return $response->withProtocolVersion($container->get('settings')['httpVersion']); }, 'callableResolver' => function (ContainerInterface $container) { return new \Slim\CallableResolver($container); }];