extract-settings — Извлечение настроек¶
Автоматически находит все вызовы $modx->getOption() в PHP-коде и генерирует файл системных настроек.
Использование¶
Пример¶
Что делает¶
- Сканирует все PHP-файлы в
core/components/<name>/src/ - Находит вызовы
$modx->getOption('prefix_setting_name') - Автоматически определяет тип настройки
- Генерирует
core/components/<name>/elements/settings.php
Автоопределение типов¶
Экстрактор анализирует контекст использования настройки:
| Контекст | Тип |
|---|---|
В условии if/foreach/while |
boolean |
intval(), floatval(), number_format() |
number |
array, explode(), json_decode() |
array |
| Всё остальное | string |
Автокатегоризация¶
Настройки автоматически распределяются по областям (area):
| Паттерн имени | Область |
|---|---|
*_path, *_dir |
paths |
*_email |
email |
*_cache, *_debug |
system |
| Все остальные | general |
Результат¶
Из кода:
Будет сгенерирован:
<?php
return [
'mypackage_api_timeout' => [
'key' => 'mypackage_api_timeout',
'value' => '',
'xtype' => 'textfield',
'namespace' => 'mypackage',
'area' => 'general',
],
'mypackage_debug' => [
'key' => 'mypackage_debug',
'value' => '',
'xtype' => 'combo-boolean',
'namespace' => 'mypackage',
'area' => 'system',
],
];