Jak utworzyć klasę połączenia z wtryskiem zależności i interfejsami?
Czytałem to pytanie SO:
PHP - wiele różnych zależności zależnych od baz danych
Najlepsza odpowiedź. Rozumiem koncepcję korzystania z interfejsu tutaj, ale nie wiem, jak go używać. Oto, co powiedziała górna odpowiedź: przepraszam, jeśli nie mam jej tutaj kopiować:
You should create an interface first for all the DB operations.
interface IDatabase
{
function connect();
function query();
...
}
Then have different driver classes implementing this interface
class MySQLDB implements IDatabase
{
}
class PGSQLDB implements IDatabase
{
}
This way you can easily use dependency injection.
class Test
{
private $db;
function __construct(IDatabase $db)
{
$this->db = $db;
}
}
You can call it as:
$mysqldb = new MySQLDB();
$test = new Test($mysqldb);
or
$pgsqldb = new PGSQLDB();
$test = new Test($pgsqldb);
Nie rozumiem, jak ukończyć test w klasie i co przechodzę do testu. Gdzie są moje informacje o połączeniu? Miałem nadzieję, że ktoś pomoże mi ukończyć to dla połączenia mysql, a może pdo.