С Праздником трудящихся коллеги! Провожу первомай дома в трудах:)
Как значения формы сохранять в разные файлы и считывать. Заморочился с освоением Class. Но не могу дать ума как это реализовать.
На входе имеется Class, который считывает и сохраняет значения формы в один файл:
class Admin {
// Пути к файлам
protected $basePath;
protected $configFile;
protected $valuesFile;
// Настройки с их значениями
protected $settings = array();
// Конструктор
function __construct() {
$this->basePath = $_SERVER['DOCUMENT_ROOT'] . '/admin/';
$this->configFile = $this->basePath . 'config/config.json';
$this->valuesFile = $this->basePath . 'config/values.json';
$this->setSettings();
}
// Инициализируем настройки
private function setSettings() {
$config = json_decode(file_get_contents($this->configFile), true);
$values = json_decode(file_get_contents($this->valuesFile), true);
foreach($config as $item) {
$value = isset($values[$item['key']]) ? $values[$item['key']] : $item['default'];
if ($item['type'] == 'number') {
$value = (int)$value;
}
if ($item['type'] == 'checkbox') {
$value = $value === 'true';
}
array_push($this->settings, array(
'utm' => $item['utm'],
'key' => $item['key'],
'title' => $item['title'],
'type' => $item['type'],
'list' => isset($item['list']) ? $item['list'] : null,
'value' => $value
));
}
}
// Возвращаем все настройки
public function getSettings() {
return $this->settings;
}
// Возвращаем значение одной настройки
public function getValue($key) {
$index = array_search($key, array_column($this->settings, 'key'));
return $index !== false
? $this->settings[$index]['value']
: null;
}
/* БЫЛО
// Сохраняем настройки в файл
public function save($settings) {
$value = 'utm'; // вот здесь нужно вставить значение utm из поля формы
file_put_contents($this->basePath . 'config/'.$value.'.json', json_encode($settings));
$this->setSettings();
} */
/* СТАЛО (РЕШЕНО) */
// Сохраняем настройки в папку и новый файл
public function save($settings) {
$utm = $_POST["utm"];
file_put_contents($this->basePath . 'config/utm/'.$utm.'.json', json_encode($settings));
$this->setSettings();
}
}
Как получать значение $value = 'utm'; из поля формы? Может ajax-ом как-то?
Но как это реализовать грамотно классами в php7?