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,
        ];
    }
}

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