Реализуя приложение SAAS (мультитенантное), у меня возникает ситуация, когда приложению необходимо подключаться к различным базам данных в зависимости от пользователя, который хочет войти в систему. Базы данных предназначены для отдельных учреждений. Допустим, MANAGER-A для учреждения A, MANAGER-B для учреждения B хотят войти в свои различные учреждения.
Процесс, который я реализую, таков: задействованы 3 базы данных: DEFAULT-DB, INSTITUTION-A-DB, INSTITUTION-B-DB. DEFAULT-DB содержит все учетные данные для входа и базы данных каждого пользователя. Это означает, что перед тем, как MANAGER-A сможет войти в свое приложение, произойдет следующее: во-первых, он войдет в DEFAULT-DB, в случае успеха его данные будут извлечены и зарегистрированы и заданы в качестве параметра конфигурации. php файл Это означает, что соединение будет динамическим на основе параметров, выбранных и переданных DEFAULT-DB. У меня такие вопросы:
Как мне записать эти параметры динамически в файл config.php?
Во-вторых, я открыт для консультаций экспертов, если моя реализация не самая лучшая.
Config.php file
<?php
unset($CFG);
global $CFG;
$CFG = new stdClass();
$CFG->dbtype = 'mysqli';
$CFG->dblibrary = 'native';
$CFG->dbhost = 'localhost';
$CFG->dbname = 'mydb';
$CFG->dbuser = 'root';
$CFG->dbpass = '';
$CFG->prefix = 'my_';
$CFG->dboptions = array (
'dbpersist' => 0,
'dbport' => '',
'dbsocket' => '1',
'dbcollation' => 'utf8mb4_unicode_ci',
);
$CFG->wwwroot = 'http://localhost:8888/myapp';
$CFG->dataroot = '/Applications/MAMP/data/myapp_data';
$CFG->admin = 'admin';
$CFG->directorypermissions = 0777;
require_once(dirname(__FILE__) . '/lib/setup.php');
Это Moodle. Я попробовал IOMAD, это отличное приложение, но оно не отвечает моим потребностям.