Система управления «Сайт PRO»
Версия 20240107

Класс Conf

Объект $Conf: Cms\Root\Conf наследует Cms\Site\Base

Объект для работы с конфигурацией сайта

Исходный код
class Conf extends \Cms\Site\Base { … }

Свойства

$file

$Conf->file = null;

Файл конфигурации

Исходный код
    var $file = null;

$data

$Conf->data = null;

Данные конфигурации

Исходный код
    var $data = null;

Методы

__construct()

new Conf($open=true);

Конструктор.

Параметры:

ИмяОписание
$open

string; boolean Файл конфигурации

Исходный код
    function __construct($open = true) {
        parent::__construct();
        if ($open === false) return;
        elseif ($open === null || $open === true) $open = "cms/conf.php";
        $this->init($open);
    }

init()

$Conf->init($file=null);

Загрузка файла конфигурации

Параметры:

ИмяОписание
$file

string Файл кофигурации

Возвращает: true|null

Исходный код
    function init($file = null) {
        $root = $this->root();
        if (isset($file)) $this->file = $file;
        else $file = $this->file;
        if ($file[0] != "/" && strlen($root)) $this->file = $file = "$root/$file";
        if (is_array($data = @include($file))) {
            $this->data = $data;
            return true;
        } else {
            $this->addError("Невозможно прочитать файл «{$file}»");
        }
    }

get()

$Conf->get($key, $default=null);

Значение параметра конфигурации

Параметры:

ИмяОписание
$key

string Параметр

$default

any Значение по умолчанию

Возвращает: mixed

Исходный код
    function get($key, $default = null) {
        return isset($this->data[$key]) ? $this->data[$key] : $default;
    }

set()

$Conf->set($key, $value=null);

Установка значения параметра конфигурации

Параметры:

ИмяОписание
$key

string Параметр

$value

any Значение

Возвращает: any

Исходный код
    function set($key, $value = null) {
        return $this->data[$key] = $value;
    }

save()

$Conf->save();

Сохранение конфигурации

Возвращает: true|null

Исходный код
    function save() {
        if (@file_put_contents($file = $this->file, $this->export($this->data)) !== false) {
            @chmod($file, 0666);
            return true;
        } else {
            $this->addError("Невозможно записать файл «{$file}»");
        }
    }

export()

$Conf->export($data);

Конфигурация в виде строки для записи в файл

Параметры:

ИмяОписание
$data

array Конфигурация

Возвращает: string

Исходный код
    function export($data) {
        $a = array();
        foreach ($data as $k => $v) if (substr($k, 0, 5) != "_old_") $a[$k] = $v;
        return '<' . '?php' . ' return' . "\n" . var_export($a, true) . ';' . "\n";
    }