Итак, у меня есть постоянно растущая система на 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. Я не инициализирую их до тех пор, пока они не будут вызваны, что должно быть эффективным, и их не нужно воссоздавать на протяжении всего процесса, и независимо от его объема. По крайней мере, поэтому я начал эту идею, но я не знаю, лучший ли это.
Благодаря
Считаете ли вы использование ORM, такого как [доктрина] (http://www.doctrine-project.org/)? Похоже, это в основном то, что вы пытаетесь реализовать. – lakenen
Ваш «пользователь» означает «пользователь базы данных», который вы подключаете, или какой-либо «объект/объект/данные», который вы используете в своем приложении? – umlcat