【问题标题】:Laravel Homestead's Vagrantfile: where is $confDir supposed to be set?Laravel Homestead 的 Vagrantfile:$confDir 应该设置在哪里?
【发布时间】:2015-08-01 12:26:02
【问题描述】:
我正在剖析 Laravel Homestead 的配置。在 Vagrantfile 中是以下行:
confDir = $confDir ||= File.expand_path("vendor/laravel/homestead")
$confDir 在该行之前没有提到。它的价值是零,我想知道什么会给它一个价值?来自 CLI 的东西?
【问题讨论】:
标签:
ruby
laravel
vagrant
homestead
【解决方案1】:
Vagrantfile 只是一个 ruby 脚本。在 ruby 中,美元符号变量是一个全局变量。
现在,单看宅基地 Vagrantfile 仍然没有多大意义。但是,这可能不是唯一使用的 Vagrantfile。如 vagrant 文档 here 中所述,在“加载顺序和合并”下,Vagrantfiles 按以下顺序加载:
- Vagrantfile 与要用于给定机器的盒子一起打包。
- Vagrant 主目录中的 Vagrantfile(默认为 ~/.vagrant.d)。
- 项目目录中的 Vagrantfile。
- 多机覆盖(如果有)。
- 提供者特定的覆盖,如果有的话。
homestead Vagrantfile 是在第 3 步中加载的文件。如果您在第 1 步或第 2 步中有一个设置了 $confDir 变量的 Vagrantfile,那么 homestead Vagrantfile 将选择并使用它。