function(ContainerInterface $container) { $emails = $container->get('emails'); if (isset($emails->port)) { return new \Ddeboer\Imap\Server($emails->host, $emails->port); } return new \Ddeboer\Imap\Server($emails->host); }, \Ddeboer\Imap\ConnectionInterface::class => function(ContainerInterface $container) { $emails = $container->get('emails'); $server = $container->get(\Ddeboer\Imap\ServerInterface::class); return $server->authenticate($emails->username, $emails->password); }, PDO::class => function(ContainerInterface $container) { $database = $container->get('database'); $dsn = ["mysql:host={$database->host}"]; if (isset($database->port)) { $dsn []= "port={$database->port}"; } $dsn []= "dbname={$database->name}"; $dsn = implode(';', $dsn); return new PDO($dsn, $database->username, $database->password); }, ];