Zagadnienia bazodanowe do naszego projektu MVC – rozbudowa i przebudowa projektu. Do dzieła!

Weźmiemy ten kod:

<?php

try {
    $dbh = new PDO('mysql:host=localhost;dbname=mydb123', 'user', 'pass');
    echo "OK";
} catch (PDOException $e) {
    echo $e->getMessage();
}

Postaramy się go przebudować na podejście obiektowe tworząc klasę PDOConnection:

<?php

class PDOConnection {
    protected $connection;

    public function connect(): PDOConnection{
        try {
            $this->connection = new PDO('mysql:host=localhost;dbname=mydb123', 'user', 'pass');
        } catch (PDOException $e) {
            echo $e->getMessage();
        }
        return $this;
    }

    public function getConnection(): PDO|null
    {
        return $this->connection;
    }

}

$conn = new PDOConnection();
$conn->connect();
$conn = $conn->getConnection();

Ok. Teraz warto by było mieć skąd pobierać dane do konstruktora PDO, ale tym zajmiemy się w następnych lekcjach.