Disclaimer: Module is not complete and not ready for use yet., (*1)
Для автоматической поддержки сторонних вендоров, кроме infrajs нужно использовать расширение infrajs/config-search, (*2)
{ "reqiure":{ "infrajs/config":"~1" } }
В папке расширения в vendor или в подпапке проекта или в корне проекта создаётся файл .infra.json в который выносятся параметры, (*3)
{ "name":"Лёха" }
В php затем обращаемся к этим параметрам., (*4)
use infrajs\config\Config; $conf = Config::get('имя расширения'); echo $conf['name']; //Лёха
Имя расширения совпадает с имененм папки или с ключём в корневом конфиге, (*5)
{ "dependencies":"event", "require":"script.php", "pub":"propname", "conf":"infrajs\\access\\Access", "off": false, "js": "path/to/js", "tester":"test.php", "testerjs":"test.js" }
dependencies:'module' - указывает модуль, который должен быть загружен "до". Для php не требуется так как зависимости подключатся при обращении к калссу через autoload. Используется если доступ к модулю осуществляется в js в первом потоке выполнения. Во вложенных вызовах всё в любом случае будет доступно и указывать dependencies не требуется. Секция конфига dependencies будет располагаться до секции конфига указавшего эту зависимость модуля. При всех пробежках сначало будет обработка dependencies и только потом модуля указавшего эту зависимость., (*6)
По умолчанию false. true запрещает require и js, (*7)
Путь до javascript файлов. Свойство обрабатывается infrajs/collect, (*8)
Свойство обрабатывается infrajs/tester, (*9)
Переменная Config::$sys предназначена при записи в неё значений, которые должны подменять оригинальные значения из конфига какого-то расширения. Используется с infrajs/update. Config::$sys
- массив с конфигами расширений или двухмерный массив с конкретными параметрами, которые в дальнейшем автоматически сохраняются в !cache/.infra.json
и инициализируются при каждом запросе к серверу. Пример использования в расшиении akiyatkin/catalog-range., (*10)