При наличии специфичных требований к серверному окружению для работы приложения или плагина такие требования необходимо указать в файле lib/config/requirements.php
в поддиректории каждого такого приложения или плагина. Таким требованием может быть наличие какого-то конкретного установленного приложения Webasyst, расширения PHP или значение параметра конфигурации PHP.
Формат записи системных требований представляет собой PHP-файл, возвращающий ассоциативный массив, в котором ключом является название требуемого ресурса, а значением — ассоциативный подмассив со следующими данными:
name — название ресурса
description — описание и объяснение необходимости наличия данного ресурса
strict — обязательность наличия (булевый параметр — если указано значение true
, то установить или обновить ваш продукт будет невозможно, пока не будет удовлетворено соответствующее требование)
version/value — требование к версии либо значение (этот элемент следует опустить при указания требования наличия установленного серверного компонента, например, расширения PHP). В значениях параметров version
/value
поддерживаются математические операции сравнения (>, >=, =, <=, <). Если не указан оператор сравнения, то для версии программного компонента (version
) учитывается его минимальная необходимая версия, а для значения серверного параметра (value
) — минимальное требуемое значение. При указании версии PHP обязательно использование оператора сравнения.
Поддерживаемые типы системных требований:
app.%app_id%
— ID установленного приложения Webasystphp.%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
, используются только для базовой проверки серверного окружения при установке вашего приложения или плагина. Независимо от указания системных требований необходимо учитывать возможные изменения конфигурации сервера после установки или обновления вашего продукта и выполнять необходимые проверки в исходном коде всегда, когда это необходимо для обеспечения корректной работы вашего программного продукта.