https://github.com/phphleb/spreader
Single configuration replication for PHP Framework HLEB2
https://github.com/phphleb/spreader
Last synced: 4 months ago
JSON representation
Single configuration replication for PHP Framework HLEB2
- Host: GitHub
- URL: https://github.com/phphleb/spreader
- Owner: phphleb
- License: mit
- Created: 2021-12-11T15:18:15.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-06T01:58:37.000Z (over 1 year ago)
- Last Synced: 2025-06-21T03:49:33.402Z (12 months ago)
- Language: PHP
- Homepage:
- Size: 37.1 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
### Удалённое конфигурирование для библиотек фреймворка HLEB2
[](https://github.com/phphleb/hleb)  [-brightgreen.svg)](https://github.com/phphleb/hleb/blob/master/LICENSE)
Позволяет создать общую конфигурацию для библиотек, в том числе использующих
настраиваемую пользователем конфигурацию.
Это может понадобиться при распределении нагрузки на несколько одинаковых клонов проекта,
в таком случае у них должна быть общая внешняя конфигурация.
Например, в библиотеке Hlogin через веб-интерфейс администратором изменён тип дизайна
регистрации, это изменение должно быть применено ко всем клонам проекта одновременно.
Библиотека phphleb/spreader добавляет общий тип хранения конфигурации в базе данных.
Для этого вам нужно переключить настройку фреймворка в тип 'DB' и указать идентификатор базы данных.
Для сохранения конфигурации в базу данных используйте следующие настройки:
```php
// File /config/common.php
/*
│-----------------------------------------------------------------------------
│ Selecting the type of configs storage ("File" or "DB")
│-----------------------------------------------------------------------------
│ Выбор типа хранения конфигов ("File" или "DB")
│-----------------------------------------------------------------------------
*/
'spread.config.type' => 'DB',
```
```php
// File /config/database.php
return [
'spread.db.type' => 'mysql.name',
// ,,, //
];
```
Для начальной синхронизации всех конфигураций можно использовать специальную консольную команду.
Установка команды в проект:
```bash
php console phphleb/spreader add
```
Перенос конфигурации из файлов в выбранный тип (`DB`):
```bash
php console spreader/sync
```
Эта команда может пригодиться при первоначальном развертывании проекта,
она делает конфигурацию текущего проекта общей для всех его клонов.
Предварительно можно вывести данные для переноса следующей командой:
```bash
php console spreader/report
```
В случае, если вы хотите использовать этот механизм для своей библиотеки,
то нужно получение/сохранение конфигурации в ней реализовать через
класс Phphleb\Spreader\Transfer.
При выборе типа `File` будет использовано хранение конфигурации по умолчанию, в файлах по пути /storage/lib/.
Для типа `DB` данные будут перенесены в таблицу `hleb_spreader_conf`.
Проверена поддержка __MySQL__ / __MariaDB__ / __PostgreSQL__.