我在laravel的conifg目录中创建了一个名为db-constant.php
的文件,这个文件包含我的常量,然后我在require_once 'db-constants.php';
中添加了这行app.php
,问题是我输入php的地方artisan cache:clear或任何命令此消息将出现
PHP注意:第1行的/var/www/html/test/config/db-constants.php中已经定义了常量FLD_EMAIL
我该如何解决这个问题?
答案 0 :(得分:2)
如果您使用Laravel
,则不必使用require_once
或它的对应物。 composer
的自动加载用于所有内容,并自动加载配置文件。您需要做的是阅读有关配置的文档,将文件放在config/
目录中并返回带有配置值的array
。
现在,对我来说似乎是因为某些奇怪的原因你想使用常量而不是Laravel的机制来访问配置值。在这种情况下,你:
1。)不要在config/
目录
2.)不要手动require_once
任何事情
3.。)使用Composer的自动加载功能
1。)创建app/MyConstants
目录。
2。)创建你的文件,我们称之为constants.php
。路径是:
app/MyConstants/constants.php
3。)添加define
代码
4.打开composer.json
5.)查找"autoload"
6。)在"files"
下查找"autoload"
。如果它不存在,请创建它。
7.。)添加要自动包含的文件列表
"autoload"
中的composer.json
应如下所示:
"autoload": {
"files": ["app/MyConstants/constants.php"]
}
在终端中,输入composer du
或composer dump-autoload
。它将重新创建自动加载器并自动包含带有常量的文件。
删除bootstrap/cache
,以便再次使用artisan
。
现在你可以:
1。)有一个可以定义常量的地方
2.)避免手动要求文件
就我个人而言,我没有看到这个的原因,但话又说回来 - 我只是一个人,我对这个宏大计划中的任何事情一无所知:)
答案 1 :(得分:0)
您需要先阅读此文档https://laravel.com/docs/5.4/configuration。以及Laravel的其他文档。如何使用配置文件:
db-constant.php
。根据需要填写。例如
return [
'FLD_EMAIL' => 'your-field-here',
];
在任何需要的地方使用
$email = config('db-constant.FLD_EMAIL');
一切都是。