Add MariaDB container; add PDO connection; add error middleware
This commit is contained in:
parent
114a67dbe4
commit
2bb7ea54a2
6 changed files with 76 additions and 9 deletions
|
|
@ -5,14 +5,16 @@ namespace MailAccountAdmin;
|
|||
|
||||
use DI\Container;
|
||||
use MailAccountAdmin\Login\LoginController;
|
||||
use PDO;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Slim\Views\Twig;
|
||||
|
||||
class Dependencies
|
||||
{
|
||||
private const SETTINGS = 'settings';
|
||||
private const TWIG = 'view';
|
||||
public const SETTINGS = 'settings';
|
||||
public const TWIG = 'view';
|
||||
private const TWIG_TEMPLATE_DIR = __DIR__ . '/../templates';
|
||||
public const DATABASE = 'database';
|
||||
|
||||
public static function createContainer(Settings $settings): Container
|
||||
{
|
||||
|
|
@ -29,6 +31,22 @@ class Dependencies
|
|||
return Twig::create(self::TWIG_TEMPLATE_DIR, $settings->getTwigSettings());
|
||||
});
|
||||
|
||||
// Database connection
|
||||
$container->set(self::DATABASE, function (ContainerInterface $c) {
|
||||
/** @var Settings $settings */
|
||||
$settings = $c->get(self::SETTINGS);
|
||||
$dbSettings = $settings->getDatabaseSettings();
|
||||
|
||||
return new PDO(
|
||||
"mysql:dbname={$dbSettings['dbname']};host={$dbSettings['host']};port={$dbSettings['port']}",
|
||||
$dbSettings['username'],
|
||||
$dbSettings['password'],
|
||||
[
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
],
|
||||
);
|
||||
});
|
||||
|
||||
// Login, registration, authentication
|
||||
$container->set(LoginController::class, function (ContainerInterface $c) {
|
||||
return new LoginController(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue