# Персональные настройки

Plesk SDK API позволяет изменять поведение расширений путем редактирования конфигурационного файла panel.ini.

Вы можете добавлять в `panel.ini` значения, которые будут читаться расширениями. Предполагается, что эти значения будут использоваться только для чтения, и пользователи будут редко их менять. Например, вы можете задать значение «connectionTimeout» в `panel.ini` вместо того, чтобы указывать его прямо в коде. Чтобы указать одно или несколько значений для чтения определенным расширением, добавьте в файл секцию, начинающуюся с `[ext-<extension-id>]`, где `<extension-id>` – идентификатор расширения. Рассмотрим следующий пример:

    [ext-custom-config]
    timeout = 1200
    homepage = "https://another-url.com"

Здесь указаны значения для `timeout` и `homepage`, и они будут считаны только расширением с идентификатором «custom-config».

Чтение значений из конфигурационного файла осуществляется посредством класса pm_Config.

Хранение значений по умолчанию необязательно, оно осуществляется через класс хука, реализованный в расширении. Этот класс должен находиться в `plib/hooks/ConfigDefaults.php` и расширять pm_Hook_ConfigDefaults.

Вложенные настройки конфигурации не поддерживаются.

## Примеры

Чтений значений из файла конфигурации

    $timeout = pm_Config::get('timeout');
    $homepage = pm_Config::get('homepage');

Восстановление настроек по умолчанию

В файле `plib/hooks/ConfigDefaults.php`:

    <?php
    // Copyright 1999-2016. Parallels IP Holdings GmbH.
    class Modules_CustomConfig_ConfigDefaults extends pm_Hook_ConfigDefaults
    {
        public function getDefaults()
        {
            return [
                'homepage' => 'https://www.plesk.com/',
                'timeout' => 60,
            ];
        }
    }

Простое расширение, иллюстрирующее этот принцип, можно найти здесь.