Database.php 686 B

1234567891011121314151617181920212223242526
  1. <?php
  2. namespace Libs;
  3. final class Database
  4. {
  5. public static function pdo(): \PDO
  6. {
  7. $host = $_ENV['DB_HOST'] ?? '127.0.0.1';
  8. $port = $_ENV['DB_PORT'] ?? '5432';
  9. $name = $_ENV['DB_NAME'] ?? '';
  10. $user = $_ENV['DB_USER'] ?? '';
  11. $pass = $_ENV['DB_PASS'] ?? '';
  12. if ($name === '') {
  13. throw new \RuntimeException('DB_NAME is not configured.');
  14. }
  15. $dsn = sprintf('pgsql:host=%s;port=%s;dbname=%s', $host, $port, $name);
  16. return new \PDO($dsn, $user, $pass, [
  17. \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
  18. \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
  19. ]);
  20. }
  21. }