How can dependency injection be implemented effectively when using PDO in PHP?
When using PDO in PHP, dependency injection can be implemented effectively by creating a database connection class that accepts a PDO object as a parameter in its constructor. This allows for better testability and flexibility in managing the database connection throughout the application.
class DatabaseConnection {
private $pdo;
public function __construct(PDO $pdo) {
$this->pdo = $pdo;
}
public function query($sql) {
return $this->pdo->query($sql);
}
// Other database methods can be added here
}
// Usage example
$pdo = new PDO("mysql:host=localhost;dbname=mydatabase", "username", "password");
$databaseConnection = new DatabaseConnection($pdo);
$result = $databaseConnection->query("SELECT * FROM table_name");