首页 > 解决方案 > Laravel 默认辅助方法和外观不适用于自定义包

问题描述

我正在开发一个自定义包,我需要访问配置数据。我能够通过刀片文件从配置中提取数据,但是,当我尝试从我创建的任何自定义类中调用它时,它会引发错误:

错误:调用未定义的函数 Acme\Package\config()

不过有趣的是,当我尝试使用外观Illuminate\Support\Facades\Config时,它找不到类。

有什么方法可以从配置(从包和/或应用程序)中检索数据?

<?php

namespace Acme\Package;

class MyClass {
    public function test() {
        config('app.name');
    }
}

更新:它在浏览器中运行时工作(安装在 Laravel 项目中的包),但在运行包的测试时失败

更新:如果这有帮助,我的包裹可以在这里找到

呼叫config()是从这里

失败的测试用例可以在这里找到

标签: phplaravelpackage

解决方案


你应该试试这个:

<?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

推荐阅读