<?php
/**Bekapcsolja a szigorú típusellenőrzést, ami azt jelenti,
hogy a megadott típusú paramétereknek és visszatérési értékeknek pontosan meg
kell felelniük. */
declare(strict_types=1);
class DatabaseConnection
{
private mysqli $connection;
public function
__construct(
private string
$host = 'localhost',
private string
$username = 'root',
private string
$password = '',
private string
$database = 'tartalomkezelo',
) {
$this->connect();
}
/** connect metódus:
Ez a metódus felelős a kapcsolat létrehozásáért: Ellenőrzi, hogy van-e hiba a
kapcsolat létrehozásakor, és részletes üzenetet jelenít meg, ha probléma lép
fel.
* Beállítja a
karakterkódolást UTF-8-ra, hogy a magyar ékezetes karaktereket megfelelően
kezelje.
*/
private function
connect(): void
{
$this->connection = new mysqli($this->host, $this->username, $this->password, $this->database);
//
Hibaellenőrzés
if
($this->connection->connect_error) {
throw new
RuntimeException('Adatbázis-kapcsolati hiba: ' .
$this->connection->connect_error);
}
//
Karakterkódolás beállítása
if
(!$this->connection->set_charset('utf8')) {
throw new
RuntimeException('Karakterkódolási hiba: ' . $this->connection->error);
}
}
/**getConnection
metódus:
Ez egy getter, amely lehetővé teszi, hogy más osztályok is
hozzáférjenek a létrehozott kapcsolat objektumához.
*/
public function
getConnection(): mysqli
{
return
$this->connection;
}
/**closeConnection
metódus:
Lezárja a kapcsolatot, amikor az már nem szükséges, ezzel
segítve az erőforrások felszabadítását.
*/
public function
closeConnection(): void
{
$this->connection->close();
}
}
/**Tesztelési blokk:
Ellenőrzi, hogy az osztály megfelelően működik-e.
Siker esetén kiír egy üzenetet.
Hiba esetén a kivétel (RuntimeException) által generált
üzenetet jeleníti meg. */
try {
$db = new
DatabaseConnection();
//echo
"Adatbázis-kapcsolat sikeresen létrejött.";
} catch (RuntimeException $e) {
echo
$e->getMessage();
}
?>
Nincsenek megjegyzések:
Megjegyzés küldése