У меня есть некоторые настройки, хранящиеся в таблице базы данных mysql «Настройки» для веб-приложения php. Таблица имеет два столбца, просто «option_name» и «option_value». Я построить класс, чтобы восстановить или изменить эти параметры (обычно изменяется через флажки) и мне было интересно, если это можно было бы считать хорошим подход:Управление параметрами приложения php, хранящимися в базе данных
class Settings {
public function __construct(PDO $db_connection) {
$this->db_connection = $db_connection;
}
public function getValue($setting_name) {
$sql = "SELECT option_value FROM settings WHERE option_name = ?";
$stmt = $this->db_connection->prepare($sql);
$stmt->execute([$setting_name]);
return $stmt->fetchColumn();
}
public function setValue($setting_name, $value) {
// Some code here to sanitize value
if (!is_bool($value)) {
throw new InvalidArgumentException("value must be boolean");
}
$sql = "UPDATE settings SET option_value = ? WHERE option_name = ?";
$stmt = $this->db_connection->prepare($sql);
return $stmt->execute([$value, $option_name)];
}
}
Таким образом, каждый раз, когда используется метод, запрос отправляется в базу данных. Также класс является просто «оберткой» для запросов. Является ли это хорошим способом управления настройками? Я хотел бы услышать некоторые предложения
Трудно сказать, без дополнительной информации. Сколько настроек есть? Я бы, наверное, загрузил их все сразу. – jeroen