diff --git a/src/Database/Database.php b/src/Database/Database.php index f050ee9..ec95a26 100644 --- a/src/Database/Database.php +++ b/src/Database/Database.php @@ -15,6 +15,39 @@ public const DATE_FORMAT = "Y-m-d"; public const DATETIME_FORMAT = "Y-m-d H:i:s"; + private const DEFAULT_HOSTNAME = "localhost"; + private const DEFAULT_USERNAME = "www-data"; + private const DEFAULT_PASSWORD = ""; + + /** + * Create a new Database instance from credentials + * + * @param string $host + * @param string $username + * @param string $password + * @param string $database + * @return static + */ + public static function from_credentials( + ?string $host = self::DEFAULT_HOSTNAME, + ?string $username = self::DEFAULT_USERNAME, + ?string $password = self::DEFAULT_PASSWORD, + string $database + ) { + // Create key if it does not exist + if (!$_ENV["mariadb"]) { + $_ENV["mariadb"] = []; + } + + // Set environment variables from credentials + $_ENV["mariadb"]["host"] = $host; + $_ENV["mariadb"]["user"] = $username; + $_ENV["mariadb"]["pass"] = $password; + $_ENV["mariadb"]["db"] = $database; + + return new static(); + } + /** * Wrap a new vlw/MySQL instance with credentials from project .env.ini */