Так что у меня есть постоянно растущая система в PHP, где у меня есть статический класс, который заботится о соединениях с базой данных.
<?php
class Database {
// ... connection upon construction and ways of escaping the data
public function query($query) {
// performs query and returns the data.
}
}
class API { // Not actually called api, but for the purposes of this
private static $database = false;
public static function GetDatabase() {
if (static::$database === false) {
static::$database = new Database(connection information)
}
return static::$database;
}
}
?>
У меня также есть много «контроллеров» или адаптеров баз данных, которые выполняют определенныенаборы функциональности.
<?php
class UserDBAdapter {
public function newUser($info) {
// validates and builds the query statements
API::GetDatabase()->query($query);
}
}
?>
Таким образом, реальный вопрос в том, что мне нужен UserDBAdapter здесь и там через код.Скажем, в паре разных файлов и, возможно, в других контроллерах, и я не хочу передавать это как переменную (это может раздражать, когда есть у каждого метода).Я также не хочу создавать 2 из этих объектов (для целей скорости).
Так что я могу сделать что-то такое же, как и с объектом $ database.Я не инициализирую их до тех пор, пока они не будут вызваны, что должно быть эффективным, и их не нужно создавать заново в течение всего процесса, независимо от объема.По крайней мере, именно поэтому я начал эту идею, но я не знаю, является ли это лучшим идеалом.
Спасибо