Files
goldrat/precommit.php
T
2025-10-13 09:04:00 +00:00

75 lines
1.7 KiB
PHP

<?php
/**
* 项目提交前预处理脚本
* 用于安全备份并清理敏感配置字段
*/
$source = __DIR__ . '/config.php';
$backup = __DIR__ . '/config.backup.php';
// 1️⃣ 检查文件是否存在
if (!file_exists($source)) {
echo "❌ 找不到 config.php,跳过处理。\n";
exit(0);
}
// 2️⃣ 备份
copy($source, $backup);
echo "✅ 已备份到 config.backup.php\n";
// 3️⃣ 读取原配置
// 3️⃣ 读取配置
$options = [];
require $source; // 直接导入 $options
if (!isset($options) || !is_array($options)) {
echo "❌ config.php 中未定义 \$options 数组。\n";
exit(1);
}
// 4️⃣ 根据需求修改特定字段
// 举例:清空日志路径、设置默认workers、隐藏api_key
$fieldsToReset = [
'redis' => [
'ip'=>'127.0.0.1',
'port'=>6379,
'password'=>'YOURPASSWARD',
],
'db' => [
'type' => 'mysql',
'host' => '',
'database' => '',
'username' => '',
'password' => '',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'port' => 3306,
],
'apikey'=>'',
];
// 应用修改
foreach ($fieldsToReset as $key => $value) {
if (array_key_exists($key, $options)) {
$options[$key] = $value;
}
}
// 5️⃣ 写回原文件(保持 $options = [...] 格式)
$export = var_export($options, true);
// 把 array(...) 替换成 [...]
$export = preg_replace(['/\barray \(/', '/\)(\s*[,;])?/'], ['[', ']$1'], $export);
// 构造完整内容
$content = <<<PHP
<?php
\$options = $export;
PHP;
// 写入文件
file_put_contents($source, $content);
echo "✅ config.php 已清理敏感信息,可安全提交。\n";