Php 如何覆盖laravel服务提供商
我升级了php版本,现在从vendor/illumb/support/ServiceProvider.php 生成错误,因为$this->app->config['view']不是数组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
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。