Php 未捕获的ReflectionException:类日志不存在Laravel 5.2
我目前正在尝试从github克隆我的一个现有项目。克隆后,我运行Php 未捕获的ReflectionException:类日志不存在Laravel 5.2,php,laravel,centos7,laravel-5.2,Php,Laravel,Centos7,Laravel 5.2,我目前正在尝试从github克隆我的一个现有项目。克隆后,我运行composer install,在此过程中,我收到以下错误: 未捕获的反射异常:类日志不存在 我正在Centos 7上运行Laravel 5.2 我看到有人提到: 删除.env文件中的空格 删除供应商目录并重新安装 删除composer.json中所需的某些包 我有: 将我的.env替换为示例.env,以避免任何自定义配置错误 我已删除并重新克隆了回购协议 我使用了Laravel附带的默认composer.json,看看这是
composer install
,在此过程中,我收到以下错误:
未捕获的反射异常:类日志不存在
我正在Centos 7上运行Laravel 5.2
我看到有人提到:
- 删除
文件中的空格李>.env
- 删除供应商目录并重新安装
- 删除composer.json中所需的某些包
- 将我的
替换为.env
,以避免任何自定义配置错误李>示例.env
- 我已删除并重新克隆了回购协议李>
- 我使用了Laravel附带的默认
,看看这是否会有所不同李>composer.json
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
任何帮助都将不胜感激。提前谢谢 好的,经过几个小时的挖掘,我的问题的解决方案已经找到了。我之所以说我的问题是因为
异常
是非常错误的引导
未捕获的反射异常:类日志不存在
此异常仅表示Laravel试图记录错误,但无法实例化Laravel的log
类。这不是因为日志类四处走动或隐藏。这是因为Laravel仍在进行引导过程&尚未加载Log
类
因此,引发此异常是因为在Laravel的引导周期中发生了一个错误-当发生此错误时,它试图引发一个异常-但它无法引发一个异常,因为Log
类尚未加载。因此,我们得到了一个ReflectionException
这在所有版本的Laravel中都发生过这是我们在.env文件中看到Laravel 5.1中引发异常的唯一原因。请确保没有空格来存放值 例如,这是允许的
DB_USERNAME=homestead
这是不允许的
DB_USERNAME=home stead
如果有空格,可以将值括在引号中
DB_USERNAME="home stead"
真希望他们在.env文件中使用json,也许我们应该请求该功能我在CLI中键入了一个CMD,却意外地在app config文件中键入了它。为了找到问题,我必须遵循这个程序 解决方案,如何发现问题:
- 制作配置文件夹的备份副本。尝试一次删除一个配置
- 尝试运行失败的composer/artisan命令。当你
- 查找失败的文件-搜索可能失败的行
- 失败的原因是:您使用了未加载的类常量
- 然而。您使用的类/函数尚未加载。等
在我的.env文件中添加了几行之后,我注意到了同样的行为。不允许在没有引号的情况下使用空格,因此可以将其固定为:
APP\u YOUR\u NAME=“带有一些空格的值”
在我的例子中,PDO扩展的缺失就是问题所在。安装后,问题得到了解决。通过修改供应商/laravel/framework/src/illighte/Container/Container.php,并将以下内容置于顶部,揭示了潜在的错误:
<?php
namespace {
use Monolog\Logger as Monolog;
class log extends Illuminate\Log\Writer {
function __construct()
{
$this->monolog = new Monolog("local");
}
}
}
//Add curly-braces around the original content, like so:
namespace Illuminate\Container {
//All original code in this file goes here.
//...
}
此问题通常是由.env文件中单词之间的空格引起的。
确保你有类似的东西
SITE_DESCRIPTION = Social Network for dogs
你把它换成
SITE_DESCRIPTION = 'Social Network for dogs'
编辑::
因为我不满意让虚拟机平稳运行的相当笨拙的调试和返工路径等,所以我反思了这个过程,重新安装了vagrant box laravel/homestead(virtualbox 1.0.1
)
对我来说,这个问题可能源于config/app.php
中缺少一个逗号。缺少的逗号可能会停止编译过程,并抛出未捕获的ReflectionException:Class log不存在
错误
这不是一个直接的答案,但更多的是作为那些冒险进入这个无声错误的深渊的人的指导
系统:macOS Sierra
流浪汉:1.9.1
(撰写本文时的最新版本)
VM:laravel/homestead(virtualbox 0.4.0
)
Laravel版本:5.1.*
PHP:7.0.*
在反复尝试解决问题后,包括:
重写、删除潜在解析问题的.env
php7.1和mcrypt/mbstring问题
安装composer建议的软件包
更新homestad.rb
路径相关问题
关键的是,(对我来说)它似乎是初始设置中的virtualbox版本:
流浪者箱添加laravel/宅地
请尝试提供版本号,如下所示:
vagrant box add laravel/homestad
--box版本0.4.0
杂项:
我尝试了以下laravel/homestead
virtualbox版本,但失败了:
1.0.1
(默认)
和laravel/homestead-7
:
0.2.1
在我的例子中,我在配置文件中使用了route()
方法。显然,这种方法不起作用,因为这些文件不使用Lightlight Helper,它们是带有数据的simple.php
在实例化Log类之前读取配置文件,这会导致错误,解释得非常清楚。删除文件bootstrap/cache/config.php
。此文件可能不会显示在windows上,如果是,请使用double commander。肯定会成功的
编辑:
它可能是由cac引起的
Uncaught ReflectionException: Class log does not exist
<?php
return [
'data' => [
'common' => [
'AuthKey1' => "17086...........9a87a1",
'AuthKey2' => "17086...........9a87a1",
'AuthKey3' => "17043...........59969531",
],
]
]
<?php
return [
'data' => [
'common' => [
'AuthKey1' => "17086...........9a87a1",
'AuthKey2' => "17086...........9a87a1",
'AuthKey3' => "17043...........59969531",
],
]
];
protected function loadConfigurationFiles(Application $app, RepositoryContract $repository)
{
foreach ($this->getConfigurationFiles($app) as $key => $path) {
var_dump('loading key: ' . $key . ' -- path: ' . $path);
$repository->set($key, require $path);
}
}
php artisan config:clear
php artisan cache:clear
composer dump-autoload
php artisan clear-compiled
rm /var/www/html/bootstrap/cache/compiled.php
composer dump-autoload
Route::get('/config-cache', function() {
Artisan::call('config:cache');
return '<h1>Config cache cleared successfully</h1>';
});
BUSINESS_RECONCILIATION_DAYS=-8
BUSINESS_RECONCILIATION_DAYS="-8"
composer update
sudo php artisan command