feat: 添加基金监控系统基础功能
添加基金监控系统相关文件,包括邮件发送功能、基金数据配置、测试脚本等。主要包含以下内容: 1. 添加PHPMailer库及相关语言文件 2. 添加基金配置数据文件(fund_config.json, fund_names.json等) 3. 添加邮件发送测试脚本(test_email.php, test_fund_email.php等) 4. 添加.gitignore文件忽略不必要的文件 5. 添加composer.json配置依赖 Signed-off-by: LL <LL>
This commit is contained in:
87
utils/FileManager.php
Normal file
87
utils/FileManager.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/**
|
||||
* 文件管理工具类
|
||||
* 提供通用的文件和目录操作功能,减少代码重复
|
||||
*/
|
||||
class FileManager {
|
||||
|
||||
/**
|
||||
* 确保目录存在,如果不存在则创建
|
||||
* @param string $dirPath 目录路径
|
||||
* @param int $mode 目录权限(默认0755)
|
||||
* @return bool 创建成功或目录已存在返回true,失败返回false
|
||||
*/
|
||||
public static function ensureDirExists($dirPath, $mode = 0755) {
|
||||
if (!is_dir($dirPath)) {
|
||||
return mkdir($dirPath, $mode, true);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载JSON文件内容
|
||||
* @param string $filePath 文件路径
|
||||
* @param mixed $default 默认值(文件不存在或解析失败时返回)
|
||||
* @param callable|null $initCallback 初始化回调函数(文件不存在时调用)
|
||||
* @return mixed 解析后的JSON数据或默认值
|
||||
*/
|
||||
public static function loadJsonFile($filePath, $default = [], callable $initCallback = null) {
|
||||
if (!file_exists($filePath)) {
|
||||
if ($initCallback) {
|
||||
call_user_func($initCallback);
|
||||
} else {
|
||||
return $default;
|
||||
}
|
||||
}
|
||||
|
||||
$data = file_get_contents($filePath);
|
||||
if (!$data) {
|
||||
return $default;
|
||||
}
|
||||
|
||||
$json = json_decode($data, true);
|
||||
return is_array($json) ? $json : $default;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存JSON数据到文件
|
||||
* @param string $filePath 文件路径
|
||||
* @param mixed $data 要保存的数据
|
||||
* @param int $flags JSON编码标志(默认JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
|
||||
* @return bool 保存成功返回true,失败返回false
|
||||
*/
|
||||
public static function saveJsonFile($filePath, $data, $flags = JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) {
|
||||
// 确保目录存在
|
||||
$dirPath = dirname($filePath);
|
||||
if (!self::ensureDirExists($dirPath)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return file_put_contents($filePath, json_encode($data, $flags)) !== false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文件
|
||||
* @param string $filePath 文件路径
|
||||
* @return bool 删除成功返回true,失败返回false
|
||||
*/
|
||||
public static function deleteFile($filePath) {
|
||||
if (file_exists($filePath)) {
|
||||
return unlink($filePath);
|
||||
}
|
||||
return true; // 文件不存在也视为删除成功
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文件修改时间
|
||||
* @param string $filePath 文件路径
|
||||
* @return int 文件修改时间戳(文件不存在返回0)
|
||||
*/
|
||||
public static function getFileMTime($filePath) {
|
||||
if (file_exists($filePath)) {
|
||||
return filemtime($filePath);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user