我目前正在尝试从github克隆我现有的项目。在克隆composer install过程中运行之后,我收到以下错误:
composer install
Uncaught ReflectionException: Class log does not exist
我在Centos 7上运行Laravel 5.2
我看到过以下引用:
.env
我有:
example.env
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误导性很强。
Exception
此异常仅表示Laravel尝试记录错误,但无法实例化Laravel的Log类。这不是由于Log类走动或隐藏。这是因为Laravel仍在进行引导过程,并且尚未加载Log该类。
Log
因此,引发此异常是因为在Laravel的启动周期中发生了错误-发生此错误时,它试图引发异常- 但由于Log尚未加载该类,因此它无法引发异常。因此,我们得到一个ReflectionException
ReflectionException
在所有版本的Laravel中都发生了 这种 情况, 我们看到laravel 5.1中抛出异常的唯一原因是<=,因为以前Laravel默默地放弃了该问题并通过启动过程继续进行-基本上,您的应用仍会崩溃,但是您不会收到的Log class exception。
Log class exception
在我的特殊情况下,我没有php-mysql安装扩展程序,导致Laravel在启动过程中中断。
php-mysql
最终,由于错误的误导性,很难调试可能做错的事情。
我希望这可以帮助别人!