Оформление системных требований

Содержание...

При наличии специфичных требований к серверному окружению для работы приложения или плагина такие требования необходимо указать в файле lib/config/requirements.php в поддиректории каждого такого приложения или плагина. Таким требованием может быть наличие какого-то конкретного установленного приложения Webasyst, расширения PHP или значение параметра конфигурации PHP.

Формат записи системных требований представляет собой PHP-файл, возвращающий ассоциативный массив, в котором ключом является название требуемого ресурса, а значением — ассоциативный подмассив со следующими данными:

name — название ресурса
description — описание и объяснение необходимости наличия данного ресурса
strict — обязательность наличия (булевый параметр — если указано значение true, то установить или обновить ваш продукт будет невозможно, пока не будет удовлетворено соответствующее требование)
version/value — требование к версии либо значение (этот элемент следует опустить при указания требования наличия установленного серверного компонента, например, расширения PHP). В значениях параметров version/value поддерживаются математические операции сравнения (>, >=, =, <=, <). Если не указан оператор сравнения, то для версии программного компонента (version) учитывается его минимальная необходимая версия, а для значения серверного параметра (value) — минимальное требуемое значение. При указании версии PHP обязательно использование оператора сравнения.

Поддерживаемые типы системных требований:

  • app.%app_id% — ID установленного приложения Webasyst
  • php.%php_extension_name% — название расширения PHP, например, php.domxml
  • phpini.%php_parameter_name% — название параметра конфигурации PHP, например, phpini.allow_url_fopen
  • php — версия PHP

Ниже показаны примеры оформления записи системных требований в файле requirements.php:

<?php

return [
    'app.installer' => [
        'name' => 'Фреймворк Webasyst',
        'description' => '',
        'strict' => true,
        'version' => '1.0.0.7',
        // требование последней версии фреймворка
        // 'version' => 'latest',
    ],
    'app.stickies' => [
        'name' => 'Приложение «Стикеры»',
        'description' => '',
        'strict' => true,
        'version' => '1.0.0.7',
    ],
    'php.curl' => [
        'name' => 'cURL',
        'description' => 'Обмен данными со сторонними серверами',
        'strict' => true,
    ],
    'phpini.max_exection_time' => [
        'name' => 'Максимальное время исполнения PHP-скриптов',
        'description' => '',
        'strict' => false,
        'value' => '>60',
    ],
    'php' => [
        'strict' => true,
        'version' => '>=8.0',
    ],
];
Системные требования, указанные в файле requirements.php, используются только для базовой проверки серверного окружения при установке вашего приложения или плагина. Независимо от указания системных требований необходимо учитывать возможные изменения конфигурации сервера после установки или обновления вашего продукта и выполнять необходимые проверки в исходном коде всегда, когда это необходимо для обеспечения корректной работы вашего программного продукта.