webman_duanju/app/admin/common.php

49 lines
1.4 KiB
PHP

<?php
use ba\Filesystem;
use GuzzleHttp\Client;
if (!function_exists('get_controller_list')) {
function get_controller_list($app = 'admin'): array
{
$controllerDir = root_path() . 'app' . DIRECTORY_SEPARATOR . $app . DIRECTORY_SEPARATOR . 'controller' . DIRECTORY_SEPARATOR;
return Filesystem::getDirFiles($controllerDir);
}
}
if (!function_exists('get_ba_client')) {
/**
* 获取一个请求 BuildAdmin 开源社区的 Client
* @throws Throwable
*/
function get_ba_client(): Client
{
return new Client([
'base_uri' => config('buildadmin.api_url'),
'timeout' => 30,
'connect_timeout' => 30,
'verify' => false,
'http_errors' => false,
'headers' => [
'X-REQUESTED-WITH' => 'XMLHttpRequest',
'Referer' => dirname(request()->root(true)),
'User-Agent' => 'BuildAdminClient',
]
]);
}
}
function convertKeysCamelToSnakeRecursive(array $array): array
{
$converted = [];
foreach ($array as $key => $value) {
$newKey = strtolower(preg_replace('/(?<!^)[A-Z]/', '_$0', $key));
if (is_array($value)) {
$converted[$newKey] = convertKeysCamelToSnakeRecursive($value);
} else {
$converted[$newKey] = $value;
}
}
return $converted;
}