在我的应用程序中,我将定义一个配置文件,该文件的字符串取决于我想放入参数的其他字符串。我用一个例子来更好地解释
/config/specs.php内容
$var1 = 'blah01';
$var2 = 'blah02';
return [
'specs01' => "This is $var1",
'specs02' => "This is $var2"
...
]
这是我迄今为止发现的…并且实际上看起来像工作。
但是我不太相信这种方法:我是否在Larevel的全球范围内添加了一些污垢?
我知道有机会使用env('var01')函数来地址env文件,以便在我的配置数组中有参数。但我也不喜欢在。env文件中有太多的键值对。
你有什么建议?
我是否会遇到框架全局作用域的问题?(这是我还在调查的事情…)
多谢
我认为没有比这更好的方法了。。env文件用于根据环境变化的配置,我理解这些值不是特定于环境的。
在全局作用域中添加一些变量是不会有任何问题的,因为Laravel和其他所有以面向对象的方式编写的包很少使用全局变量。
如果你真的担心全局变量冲突,你可以将所有变量存储在一个数组中,并将这个数组分配给一个变量,这个变量的名字你肯定不会在任何地方使用,例如:
$variableWithSuperUniqueName = [
'var1' => 'blah01',
'var2' => 'blah02',
];
return [
'specs01' => "This is {$variableWithSuperUniqueName['var1']}",
'specs02' => "This is {$variableWithSuperUniqueName['var2']}",
...
];
这样,你将只用一个变量污染全局作用域,并通过给这个变量一个唯一的名字来避免冲突。