【问题标题】:Composer Update with Laravel 5.4 & PHP 7 "Class Name must be a valid object or a string"Laravel 5.4 和 PHP 7 的 Composer 更新“类名必须是有效的对象或字符串”
【发布时间】:2017-08-01 08:23:30
【问题描述】:

所以有一些关于此的线程,但没有一个具有完全相同的问题。基本上我从 5.1 升级到 php 5.4,从 5.6 升级到 php 7,现在我收到了这个错误消息。

PHP Fatal error:  Uncaught Error: Class name must be a valid object or a string in /var/www/dev1/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:96

这对我来说似乎很奇怪的原因是错误出在我的应用程序/我编辑过的实际 laravel 文件中。当我运行 composer update 或尝试访问我的任何网页时,都会发生此错误。以下是作曲家更新的完整转储,有什么想法吗?

[root@dev1 dev1]# composer update
> php artisan clear-compiled
PHP Fatal error:  Uncaught Error: Class name must be a valid object or a string in /var/www/dev1/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:96
Stack trace:
#0 [internal function]: Illuminate\Foundation\Exceptions\Handler->Illuminate\Foundation\Exceptions\{closure}(0, 'Symfony\\Compone...')
#1 /var/www/dev1/bootstrap/cache/compiled.php(6207): call_user_func(Object(Closure), 0, 'Symfony\\Compone...')
#2 /var/www/dev1/bootstrap/cache/compiled.php(12223): Illuminate\Support\Arr::first(Array, Object(Closure), NULL)
#3 /var/www/dev1/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(97): Illuminate\Support\Collection->first(Object(Closure))
#4 /var/www/dev1/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(61): Illuminate\Foundation\Exceptions\Handler->shouldntReport(Object(ReflectionException))
#5 /var/www/dev1/app/Exceptions/Handler.php(33): Illuminate\Foundation\Exceptions\Handler->report(Object(ReflectionException))
#6 /var/www/dev1/vendor/laravel/fram in /var/www/dev1/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php on line 96
Script php artisan clear-compiled handling the pre-update-cmd event returned with error code 255

【问题讨论】:

  • 删除您的 compiled.php 并重试。
  • 它在哪里?
  • bootstrap/cache/compiled.php,您可以从错误消息中看到。
  • 解决了!非常感谢。
  • 太棒了。我添加了一个你可以接受的答案。

标签: laravel composer-php php-7 laravel-5.4 php-7.1


【解决方案1】:

升级到 Laravel 5.4 时,我遇到了类似的错误。问题是 Laravel 仍在加载 bootstrap/cache/compiled.php(尽管它说它不再被框架使用)。删除文件将解决您的问题。

From the docs:

如果存在,您可以删除 bootstrap/cache/compiled.php 文件。框架不再使用它。

【讨论】:

  • 这并不能解决我的问题。我也遇到同样的错误
【解决方案2】:
php artisan cache:clear

php artisan clear-compiled 

sudo composer dump-autoload

【讨论】:

  • 这个答案可以通过描述问题、提供解决方案和解释你的答案来改进。
  • 尤其是在涉及 sudo 操作以解决 php 开发问题时
猜你喜欢
  • 1970-01-01
  • 2023-01-13
  • 2016-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多