gpt4 book ai didi

php - 未捕获的反射异常 : Class log does not exist Laravel 5. 2

转载 作者:IT王子 更新时间:2023-10-29 00:53:58 28 4
gpt4 key购买 nike

我目前正在尝试从 github 克隆我现有的项目。克隆后,我在运行 composer install 的过程中收到以下错误:

Uncaught ReflectionException: 类日志不存在

我在 Centos 7 上运行 Laravel 5.2。

我看到了对:

  • 删除 .env 文件中的空格。
  • 删除供应商目录并重新安装
  • 删除 composer.json 中所需的某些包

我有:

  • 将我的 .env 替换为 example.env 以避免任何自定义配置错误。
  • 我已经删除并重新克隆了存储库。
  • 我已经使用了 Laravel 附带的默认 composer.json 来查看这是否有所不同。

以上都没有给我带来任何快乐。我还在另一台机器上设置了相同的环境,应用程序运行良好。这里唯一的区别是机器(工作)不是从 git 克隆的——它是初始构建环境。

我收到的堆栈跟踪:

PHP Fatal error:  Uncaught ReflectionException: Class log does not exist in /var/www/html/Acme/vendor/laravel/framework/src/Illuminate/Container/Container.php:736
Stack trace:
#0 /var/www/html/Acme/vendor/laravel/framework/src/Illuminate/Container/Container.php(736): ReflectionClass->__construct('log')
#1 /var/www/html/Acme/vendor/laravel/framework/src/Illuminate/Container/Container.php(631): Illuminate\Container\Container->build('log', Array)
#2 /var/www/html/Acme/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(674): Illuminate\Container\Container->make('log', Array)
#3 /var/www/html/Acme/vendor/laravel/framework/src/Illuminate/Container/Container.php(845): Illuminate\Foundation\Application->make('log')
#4 /var/www/html/Acme/vendor/laravel/framework/src/Illuminate/Container/Container.php(800): Illuminate\Container\Container->resolveClass(Object(ReflectionParameter))
#5 /var/www/html/Acme/vendor/laravel/framework/src/Illuminate/Container/Container.php(769): Illuminate\Container\Container->getDependenc in /var/www/html/Acme/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 736

任何帮助将不胜感激。提前致谢。

最佳答案

好的,经过几个小时的挖掘,我的问题的解决方案已经找到了。我之所以说我的问题是因为 Exception 非常具有误导性。

未捕获的 ReflectionException:类日志不存在

这个异常仅仅意味着 Laravel 试图记录一个错误但无法实例化 Laravel 的 Log 类。这不是因为 Log 类四处走动或隐藏。这是因为 Laravel 仍在经历它的启动过程并且还没有加载 Log 类。

所以,这个异常被抛出是因为在 Laravel 的启动周期中发生了一个错误 - 当这个错误发生时它试图抛出一个异常 - 但它不能抛出一个异常,因为 Log 类尚未加载。因此我们得到 ReflectionException

的原因

在所有版本的 Laravel 中都发生过,我们看到 laravel 5.1 中抛出异常的唯一原因 <= 是因为之前 Laravel 默默地丢弃了这个问题并继续其引导过程 - 基本上,您的应用程序仍会中断,但您不会收到 Log 类异常

在我的特殊情况下,我没有安装 php-mysql 扩展,导致 Laravel 在启动过程中中断。

最终,由于错误非常具有误导性,因此很难调试您可能做错的事情。

我希望这对某人有所帮助!

编辑:关于如何调试此错误并找出哪些缺少扩展/组件实际上导致了问题,请查看@Ben Johnson 的回答。

关于php - 未捕获的反射异常 : Class log does not exist Laravel 5. 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34978828/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com