phphleb / spreader
Allows you to choose the method to use the configs for PHP Framework HLEB2
Requires
- php: >=8.2.0
- ext-json: *
- ext-pdo: *
- phphleb/framework: >=2.0.0
- phphleb/nicejson: *
- phphleb/updater: *
README
Удалённое конфигурирование для библиотек фреймворка HLEB2
Позволяет создать общую конфигурацию для библиотек, в том числе использующих настраиваемую пользователем конфигурацию. Это может понадобиться при распределении нагрузки на несколько одинаковых клонов проекта, в таком случае у них должна быть общая внешняя конфигурация.
Например, в библиотеке Hlogin через веб-интерфейс администратором изменён тип дизайна регистрации, это изменение должно быть применено ко всем клонам проекта одновременно. Библиотека phphleb/spreader добавляет общий тип хранения конфигурации в базе данных. Для этого вам нужно переключить настройку фреймворка в тип 'DB' и указать идентификатор базы данных.
Для сохранения конфигурации в базу данных используйте следующие настройки:
// File /config/common.php /* │----------------------------------------------------------------------------- │ Selecting the type of configs storage ("File" or "DB") │----------------------------------------------------------------------------- │ Выбор типа хранения конфигов ("File" или "DB") │----------------------------------------------------------------------------- */ 'spread.config.type' => 'DB',
// File /config/database.php return [ 'spread.db.type' => 'mysql.name', // ,,, // ];
Для начальной синхронизации всех конфигураций можно использовать специальную консольную команду. Установка команды в проект:
php console phphleb/spreader add
Перенос конфигурации из файлов в выбранный тип (DB
):
php console spreader/sync
Эта команда может пригодиться при первоначальном развертывании проекта, она делает конфигурацию текущего проекта общей для всех его клонов.
Предварительно можно вывести данные для переноса следующей командой:
php console spreader/report
В случае, если вы хотите использовать этот механизм для своей библиотеки, то нужно получение/сохранение конфигурации в ней реализовать через класс Phphleb\Spreader\Transfer.
При выборе типа File
будет использовано хранение конфигурации по умолчанию, в файлах по пути /storage/lib/.
Для типа DB
данные будут перенесены в таблицу hleb_spreader_conf
.
Проверена поддержка MySQL / MariaDB / PostgreSQL.