我正在开发一个自定义程序包,在该程序包中我需要访问配置数据。我能够通过刀片文件从config中提取数据,但是,当我尝试从我创建的任何自定义类中调用数据时,都会引发错误:
错误:调用未定义函数Acme \ Package \ config()
但是有趣的是,当我尝试使用立面Illuminate\Support\Facades\Config
时,它找不到类。
有什么方法可以从配置(从程序包和/或应用程序)中检索数据?
<?php
namespace Acme\Package;
class MyClass {
public function test() {
config('app.name');
}
}
更新:它在浏览器(Laravel项目中安装的软件包)中运行时有效,但在运行软件包的测试时失败
更新:如果有帮助,可以找到我的包裹here
从here到config()
的呼叫
可以找到失败的测试用例here
答案 0 :(得分:0)
<?php
namespace Acme\Package;
class MyClass {
public function test() {
\Illuminate\Support\Facades\Config::get('app.name');
}
}
尝试这样,以对Config Facade使用完整的名称空间。您也可以在名称空间下进行use
语句以注入外观,然后使用Config::get('app.name)
。它不起作用的原因是您的程序包无法解析该外观的名称空间,因为它位于IoC容器之外
答案 1 :(得分:0)
您应该尝试以下操作:
<?php
namespace Acme\Package;
use Config;
class MyClass {
public function test() {
Config::get('app.name');
}
}
更新后的答案
请在config/app.php
部分的aliases
中添加以下行
'Config' => Illuminate\Support\Facades\Config::class,
然后在命令下运行
php artisan config:cache
php artisan cache:clear