Welche Vor- und Nachteile gibt es bei der Verwendung von Dependency Injection gegenüber der klassischen OOP in PHP?
Dependency Injection in PHP offers several advantages over traditional object-oriented programming (OOP) practices. Some benefits include improved testability, increased flexibility, and better separation of concerns. However, it can also introduce additional complexity and require a deeper understanding of design patterns.
// Example of using Dependency Injection in PHP
class Database {
private $connection;
public function __construct($connection) {
$this->connection = $connection;
}
public function query($sql) {
// Query database using the injected connection
}
}
class UserRepository {
private $database;
public function __construct(Database $database) {
$this->database = $database;
}
public function getUserById($id) {
// Use the injected database to fetch user data
}
}
// Usage
$connection = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$database = new Database($connection);
$userRepository = new UserRepository($database);
$user = $userRepository->getUserById(123);