Скажем, у меня есть два класса php — класс Security
и класс Database
Безопасность
class Security {
public function userPermissions() {
//use getData() from Database to obtain information
}
}
База данных
class Database {
public function getData() {
// some code
}
}
Класс безопасности должен получать данные с использованием класса базы данных, для этого есть много способов, но я не уверен в лучшей практике.
Что лучше сделать, создать экземпляр обоих, как;
$db = new Database;
$sec = new Security($db);
а затем в классе безопасности использовать конструктор для передачи ему экземпляра БД?
Или вы бы создали новый экземпляр в методе __constructor в классе безопасности?
Я был бы благодарен за любую лучшую практику.
Создайте экземпляр обоих, а затем в классе Security используйте конструктор, чтобы передать ему экземпляр базы данных.
Подход, который вы описали, называется Внедрение зависимости и это вообще лучшее решение для вашего случая с архитектурной точки зрения.
Других решений пока нет …