php - 在 laravel 5 中,在配置文件中定义全局变量的替代形式是什么?

标签 php laravel laravel-5 config

在我的应用程序中,我将定义一个配置文件,其中的字符串取决于我想放入参数中的其他字符串。 我通过一个例子更好地解释

/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']}",
  ...
];

这样一来,您将仅用一个变量污染全局范围,并通过为该变量指定一个唯一的名称来避免冲突。

关于php - 在 laravel 5 中,在配置文件中定义全局变量的替代形式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31968064/

相关文章:

php - yii2 - 如何使用条件逻辑使复选框可见

php - 多个动态查询范围

javascript - 请求的资源上不存在 'Access-Control-Allow-Origin' header 。响应的 HTTP 状态代码为 405

php - 仅获取连接表中选定的列

php - 在 Laravel 中添加额外的属性(类)后,从 "Form::text"自动填充 "Form::model"

javascript - Ajax - 单击按钮更新数据库

php - 如何为表中的每一行创建一个编辑选项?

php - 内部联接

php - Laravel 无法显示超过 10,000 条的 mysql 记录

php - Laravel 在特征启动期间设置/修改模型属性