I try to start the application by: php -S localhost:8000 -t public/ and I get the error
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/pouce/src/App/Database.php:20 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/pouce/src/App/Database.php(20): PDO->__construct('mysql: host=loc...', 'root', '', Array) #1 /Applications/XAMPP/xamppfiles/htdocs/pouce/src/App/Database.php(28): App\App\Database->__construct() #2 /Applications/XAMPP/xamppfiles/htdocs/pouce/src/App/App.php(173): App\App\Database::getInstance() #3 /Applications/XAMPP/xamppfiles/htdocs/pouce/src/App/Model.php(14): App\App\App->getDB() #4 /Applications/XAMPP/xamppfiles/htdocs/pouce/src/App/App.php(27): App\App\Model->__construct() #5 /Applications/XAMPP/xamppfiles/htdocs/pouce/public/index.php(8): App\App\App->run() #6 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/pouce/src/App/Database.php on line 20
Here is my code :
<?php
namespace App\App;
use PDO;
class Database {
private static $_instance;
private PDO $pdo;
private $db_config;
public function __construct()
{
$this->db_config = App::getConfig()['db_config'];
$dsn = "mysql: host={$this->db_config['db_host']}; dbname={$this->db_config['db_name']}";
$this->pdo = new PDO($dsn, $this->db_config['db_user'], $this->db_config['db_pass'], [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
}
public static function getInstance()
{
if(self::$_instance === null)
{
self::$_instance = new self();
}
return self::$_instance;
}
public function getPDO(): PDO
{
return $this->pdo;
}
}