Хранилище пар "ключ-значение"

Хранилище пар "ключ-значение"

Хранилище пар "ключ-значение" Plesk используется для хранения настроек пользователя или секретных ключей. Для доступа к хранилищу пар "ключ-значение" Plesk используйте класс pm_Settings. Ключи и значения хранятся в контексте расширения.

Если вам надо присвоить значение, используйте метод

pm_Settings::set('authToken', $authToken);

Особый случай:

pm_Settings::set('something', null);

Примечание. До Plesk 17.0 такая инструкция привела бы к выдаче исключения. Начиная с Plesk 17.0, эта инструкция приведет к удалению соответствующего элемента из хранилища пар "ключ-значение".

Теперь вы можете получить значение этой переменной, используя метод

$authToken = pm_Settings::get('authToken');

Можно использовать необязательный параметр, чтобы указать значение, которое будет возвращено по умолчанию в случае, если соответствующий ключ не найден:

$message = pm_Settings::get('message', 'default message');

Чтобы получить доступ к этим значениям в каком-либо месте кода, сначала инициализируйте контекст:

pm_Context::init('extension-id');

Необходимо инициализировать контекст в следующих местах кода:

  • Планировщик задач.
  • Пред-/послеустановочные скрипты
  • Обработчики событий

Шифрование данных

Хранилище пар "ключ-значение" позволяет хранить и получать данные в зашифрованном виде.

Примечание. Настоятельно рекомендуем вам использовать именно этот подход при работе с конфиденциальными данными, такими, как учетные данные пользователя и так далее.

  • Метод setEncrypted() сохраняет зашифрованные данные в хранилище пар "ключ-значение".
pm_Settings::setEncrypted(‘secretValue’, $secretValue);
  • Метод getDecrypted() получает зашифрованное значение из хранилища пар "ключ-значение".
$secretValue = pm_Settings::getDecrypted(‘secretValue’);

Очистка хранилища пар "ключ-значение"

Начиная с Plesk 12.5, стало возможным очистить настройки расширения с помощью метода clean(). Вы можете использовать его для добавления кнопки Вернуться к значениям по умолчанию в интерфейсе вашего расширения.

Комментарии

Ограничение длины значения – 2000 символов.

Ограничение длины строки сохраненного значения – 2000 символов.

Меры предосторожности:

  • Избегайте хранения значений, длина которых больше 2000 символов.

    Примечание. В версиях Plesk ниже 17.0 сохраняются только первые 2000 символов, остальные символы обрезаются. Начиная с Plesk 17.0, такое значение вообще не будет сохранено, и будет выдано исключение.

  • Избегайте хранения значений, которые имеют тенденцию расти по длине, как, например, список доменов в виде строки JSON.

Советы по тестированию:

  • Проверяйте длину значений, сохраняемых расширением.
  • Для сохраненных значений длиной около 2000 символов, удостоверьтесь в том, что расширение должным образом проверяет, что значение имеет допустимую длину.
  • Тестируйте расширение на нескольких доменах или в схожих условиях (умножая количество сущностей), в зависимости от функциональности расширения.
Значения сохраняются в виде обычного текста

Данные, сохраненные в хранилище пар "ключ-значение", хранятся в виде обычного текста, без шифрования.

Избегайте хранения конфиденциальной информации.

Хранилище пар "ключ-значение" сохраняется и восстанавливается как часть резервной копии сервера

Хранилище пар "ключ-значение" Plesk сохраняется как часть резервной копии сервера. Таким образом, восстановление сервера Plesk из резервной копии может привести к откату некоторых или всех изменений данных хранилища, выполненных расширением.

Советы по тестированию:

Проверьте, что расширение ведет себя правильно после восстановления сервера. Например, создайте резервную копию, удалите некоторые элементы, связанные с расширением, из хранилища пар "ключ-значение", восстановите сервер из резервной копии и удостоверьтесь в том, что расширение работает так, как ожидается.

Используйте GUID объектов Plesk

Чтобы гарантировать отсутствие конфликтов между объектами, используйте GUID объектов Plesk (или ID, если GUID недоступны), чтобы однозначно идентифицировать домены, пользователей и т.д. Это поможет безопасно разрешить ситуацию, когда какой-либо объект удаляется из системы одним пользователем, а затем создается под тем же именем другим пользователем.

Советы по тестированию:

Проверьте, что GUID используются как идентификаторы объектов.

Очистка хранилища пар "ключ-значение" при удалении расширения

Хранилище пар "ключ-значение" автоматически очищается при удалении расширения. Вам необязательно делать это самостоятельно в скрипте pre-uninstall.php.

 

Leave your feedback on this topic here

If you have questions or need support, please visit the Plesk forum or contact your hosting provider.
The comments below are for feedback on the documentation only. No timely answers or help will be provided.