脚本目的:
init 脚本主要的作用是:从 environments 目录中复制配置文件,确保应用适配不同环境(例如开发、生产环境等)。
工作流程:
-
获取
$_SERVER的argv参数 -
加载
environments/index.php文件,拿到不同环境配置指定的配置文件关系。 -
如果执行
init脚本时提供了--env选项,例如:--env=Development则直接应用此环境,否则会被提示需要选择一个环境来初始化。 -
获取
environments对应环境下的所有文件。 -
因为上一步获取到的所有文件是带有文件全路径的,所以这一步直接复制文件到对应的路径,如:
frontend/config/params-local.php。 -
从
environments/index.php文件中获取到对应环境所配置的需要设置可写、可执行的目录来执行操作。
代码详解:
- 解析命令行参数:

- 检查命令行参数:

- 获取
environments中的文件列表:

- 复制文件:
function copyFile($root, $source, $target, &$all, $params)
{
// 检查源文件是否存在
if (!is_file($root . '/' . $source)) {
echo " skip $target ($source not exist)\n";
return true;
}
// 检查目标文件是否存在
if (is_file($root . '/' . $target)) {
if (file_get_contents($root . '/' . $source) === file_get_contents($root . '/' . $target)) {
echo " unchanged $target\n";
return true;
}
// 如果$all为true,输出信息并直接进行覆盖。
// 否则,提示用户目标文件已存在,并询问是否覆盖(选择“是”、“否”、“全部”或“退出”)。
if ($all) {
echo " overwrite $target\n";
} else {
echo
PHP脚本实现配置文件复制适配多环境

最低0.47元/天 解锁文章
270

被折叠的 条评论
为什么被折叠?



