Php 如何覆盖laravel服务提供商

Php 如何覆盖laravel服务提供商,php,laravel,lumen,Php,Laravel,Lumen,我升级了php版本,现在从vendor/illumb/support/ServiceProvider.php 生成错误,因为$this->app->config['view']不是数组 protected function loadViewsFrom($path, $namespace) { if (is_array($this->app->config['view']['paths'])) { foreach ($this->app->confi

我升级了php版本,现在从vendor/illumb/support/ServiceProvider.php 生成错误,因为$this->app->config['view']不是数组

protected function loadViewsFrom($path, $namespace)
{
    if (is_array($this->app->config['view']['paths'])) {
        foreach ($this->app->config['view']['paths'] as $viewPath) {
            if (is_dir($appPath = $viewPath.'/vendor/'.$namespace)) {
                $this->app['view']->addNamespace($namespace, $appPath);
            }
        }
    }

    $this->app['view']->addNamespace($namespace, $path);
}
我如何在不升级laravel版本和不修改供应商文件的情况下修复该问题

我试图从composer autoload重写map类并运行composer dump autoload,但没有成功

我的作曲家看起来像:

...
"autoload": {
    "exclude-from-classmap": ["vendor/illuminate/support/ServiceProvider.php"],
    "psr-4": {
        "App\\": "app/",
        "Illuminate\\": "app/illuminate/"
    }
},
...
在app/illumb/support中,我添加了我的自定义ServiceProvider.php

此外,我还尝试在bootstrap/app.php中映射如下:

$app->singleton(
    Illuminate\Support\ServiceProvider::class,
    App\illuminate\support\ServiceProvider::class
);
供应商类仍在使用

框架和php版本:

Laravel Framework Lumen (5.6.4) (Laravel Components 5.6.*)

php version: 7.4.13

如果
$this->app->config['view']
不是数组,那么问题就出在文件中

默认情况下,此文件如下所示


很好,我同意你的观点,但我不知道为什么有时候$this->app->config['view']返回空值。我添加了一个日志:受保护的函数loadViewsFrom($path,$namespace){log::info(json编码($this->app->config['view']);…看起来像:local.info:null local.info:{“path”:[“\/var\/www\/html\/my project\/resources\/views”],“compiled”:“\/var\/www\/html\/my project\/storage\/framework\/views”}local.INFO:null local.INFO:{“路径”:[“\/var\/www\/html\/my project\/resources\/views”],“已编译”:“\/var\/www\/html\/my project\/storage\/framework\/views”}once从config/view.php返回null和once返回正确的值。然后,您需要跟踪其为null的值。很抱歉,我们无法调试您的整个应用程序。粗略猜测:有人正在修改配置并将其设置为null。