修复客户平台图标加载

This commit is contained in:
winchen
2026-06-30 14:54:32 +07:00
parent 4d9ff68220
commit b97c23a241
9 changed files with 214 additions and 49 deletions
+79 -9
View File
@@ -1,15 +1,85 @@
<?php
declare(strict_types=1);
const IM_ADMIN_URL = 'http://127.0.0.1:18080';
const IM_ADMIN_SECRET = '123456';
const IM_DB_DSN = 'mysql:host=127.0.0.1;port=3306;dbname=wfchat;charset=utf8mb4';
const IM_DB_USER = 'winchen';
const IM_DB_PASSWORD = 'winchen@0904';
const IM_APP_DB_DSN = 'mysql:host=127.0.0.1;port=3306;dbname=appdata;charset=utf8mb4';
const IM_APP_DB_USER = 'winchen';
const IM_APP_DB_PASSWORD = 'winchen@0904';
const IM_DB_TIMEZONE = 'Asia/Bangkok';
function webImEnv(string $key, string $fallback = ''): string
{
$runtimeValue = getenv($key);
if ($runtimeValue !== false && $runtimeValue !== '') {
return $runtimeValue;
}
static $env = null;
if ($env === null) {
$env = [];
$paths = array_filter([
getenv('JC_WEB_IM_ENV_FILE') ?: '',
dirname(__DIR__, 2) . '/.env',
'/var/www/im-admin/.env',
'/var/www/im/.env',
]);
foreach ($paths as $path) {
if (!is_readable($path)) {
continue;
}
foreach (file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) ?: [] as $line) {
$line = trim($line);
if ($line === '' || strpos($line, '#') === 0 || strpos($line, '=') === false) {
continue;
}
[$name, $value] = array_map('trim', explode('=', $line, 2));
if ($name === '') {
continue;
}
$value = trim($value);
if (
strlen($value) >= 2
&& (($value[0] === '"' && substr($value, -1) === '"') || ($value[0] === "'" && substr($value, -1) === "'"))
) {
$value = substr($value, 1, -1);
}
$env[$name] = $value;
}
break;
}
}
return $env[$key] ?? $fallback;
}
function webImFirstEnv(array $keys, string $fallback = ''): string
{
foreach ($keys as $key) {
$value = webImEnv($key);
if ($value !== '') {
return $value;
}
}
return $fallback;
}
function webImMysqlDsn(string $host, string $port, string $database): string
{
return sprintf('mysql:host=%s;port=%s;dbname=%s;charset=utf8mb4', $host, $port, $database);
}
define('IM_ADMIN_URL', webImEnv('JC_WEB_IM_ADMIN_URL', 'http://127.0.0.1:18080'));
define('IM_ADMIN_SECRET', webImFirstEnv(['JC_WEB_IM_ADMIN_SECRET', 'SecretKey'], '123456'));
define('IM_DB_DSN', webImMysqlDsn(
webImEnv('JC_WEB_IM_DB_HOST', webImEnv('DB_HOST', '127.0.0.1')),
webImEnv('JC_WEB_IM_DB_PORT', webImEnv('DB_PORT', '3306')),
webImEnv('JC_WEB_IM_DB_DATABASE', webImEnv('DB_DATABASE', 'wfchat'))
));
define('IM_DB_USER', webImEnv('JC_WEB_IM_DB_USER', webImEnv('DB_USERNAME', 'winchen')));
define('IM_DB_PASSWORD', webImEnv('JC_WEB_IM_DB_PASSWORD', webImEnv('DB_PASSWORD', 'winchen@0904')));
define('IM_APP_DB_DSN', webImMysqlDsn(
webImFirstEnv(['JC_WEB_IM_APP_DB_HOST', 'DB_HOST_2', 'DB_HOST2_2'], webImEnv('DB_HOST', '127.0.0.1')),
webImFirstEnv(['JC_WEB_IM_APP_DB_PORT', 'DB_PORT_2', 'DB_PORT2_2'], webImEnv('DB_PORT', '3306')),
webImFirstEnv(['JC_WEB_IM_APP_DB_DATABASE', 'DB_DATABASE_2', 'DB_DATABASE2_2'], webImEnv('DB_DATABASE', 'appdata'))
));
define('IM_APP_DB_USER', webImFirstEnv(['JC_WEB_IM_APP_DB_USER', 'DB_USERNAME_2', 'DB_USERNAME2_2'], webImEnv('DB_USERNAME', 'winchen')));
define('IM_APP_DB_PASSWORD', webImFirstEnv(['JC_WEB_IM_APP_DB_PASSWORD', 'DB_PASSWORD_2', 'DB_PASSWORD2_2'], webImEnv('DB_PASSWORD', 'winchen@0904')));
define('IM_DB_TIMEZONE', webImEnv('JC_WEB_IM_DB_TIMEZONE', 'Asia/Bangkok'));
function respond(int $code, string $message, array $result = []): void
{