![](/img/trans.png)
[英]Fatal error: Uncaught ReflectionException: Class "env" does not exist
[英]Fatal error: Uncaught ReflectionException: Class config does not exist
我正在 Laravel 5.8 上开发一个电子商务项目,但由于我不小心在项目文件夹上运行了“laravel new”命令,所以当我尝试在本地服务器上启动该项目时出现此错误:
致命错误:未捕获的 ReflectionException:Class 配置在 C 中不存在:\wamp64\www\e-commerce\vendor\laravel\framework\src\Illuminate\Container\Container.php:788 堆栈跟踪:0 881037565863648:\ \电子商务\供应商\laravel\framework\src\Illuminate\Container\Container.php(788): ReflectionClass->__construct('config') 1 C:\wamp64\www\e-commerce\vendor\laravel\framework \src\Illuminate\Container\Container.php(667):Illuminate\Container\Container->build('config') 2 C:\wamp64\www\e-commerce\vendor\laravel\framework\src\Illuminate\Container \Container.php(615):Illuminate\Container\Container->resolve('config', Array) 3 C:\wamp64\www\e-commerce\vendor\laravel\framework\src\Illuminate\Foundation\Application.php (767): Illuminate\Container\Container->make('config', Array) 4 C:\wamp64\www\e-commerce\vendor\laravel\framework\src\Illuminate\Container\Container.php(1227): Illuminate\Foundation\Application->m ake('config') 5 C:\wamp64\www\e-commerce\vendor\laravel\framework\src\Illuminate\Log\LogManager.php(417): Illuminate\Container\C in C:\wamp64\www\ e-commerce\vendor\laravel\framework\src\Illuminate\Container\Container.php 第 788 行”
第 788 行的错误指的是那部分代码:
$reflector = new ReflectionClass($concrete)
这发生在我从 Github 克隆我的 repo 之后。现在对于我尝试在本地服务器上运行的每个项目,我都会收到此错误。
我尝试了“composer install”、“composer update”、“composer dump-autoload”,但它们都在最后这一行给出了相同的错误:“Script @php artisan package:discover --ansi handling the post-autoload-dump事件返回错误代码 255”。
我检查了 .env 文件以查看是否也存在名称空间问题,但没有。
预先感谢您的帮助。
尝试删除 de 文件:
cd bootstrap/cache/
rm -rf *.php
在这个目录中是初始化结构的文件,缓存目录包含了用于性能优化的结构生成文件,例如文件和路由缓存服务。
我尝试了@gulCunha 的答案,它奏效了。
之后,您必须运行composer update
以创建一个新的composer.lock
和php artisan config:cache
,然后您应该一切顺利。
您是否更改了.env文件,错误地我添加了一个带有空格的"APP_NAME=aaa aa "
,然后检查了每个位置,之后APP_NAME=
更改为不带空格,现在工作魅力。
您可以检查以下项目
composer dump-autoload
希望它会起作用
确保您的 .env 文件与本地环境中的完全相同。 确保 .env 文件中的值没有空格。 那些有空格的应该用引号引起来
我有一个类似的问题。 这是我修复它的方法。
当我在我的 config/app.php 提供程序中安装 Toastr 时,它就开始了。 我未能添加尾随的“,”。 因此问题。
解决方案:检查您安装的最后一个软件包。 检查您是否在服务提供商中正确添加了它。
我正在使用 composer 创建一个新的 Laravel 9 项目并得到了同样的错误。
Fatal error: Uncaught ReflectionException: Class "config" does not exist in .../vendor/laravel/framework/src/Illuminate/Container/Container.php:875
Stack trace:
#0 .../vendor/laravel/framework/src/Illuminate/Container/Container.php(875): ReflectionClass->__construct('config')
#1 .../vendor/laravel/framework/src/Illuminate/Container/Container.php(756): Illuminate\Container\Container->build('config')
#2 .../vendor/laravel/framework/src/Illuminate/Foundation/Application.php(855): Illuminate\Container\Container->resolve('config', Array, true)
#3 .../vendor/laravel/framework/src/Illuminate/Container/Container.php(692): Illuminate\Foundation\Application->resolve('config', Array)
#4 .../vendor/laravel/framework/src/Illuminate/Foundation/Application.php(840): Illuminate\Container\Container->make('config', Array)
#5 .../vendor/laravel/framework/src/Illuminate/Container/Container.php(1415): Illuminate\Foundation\Application->make('config')
#6 .../vendor/laravel/framework/src/Illuminate/Log/LogManager.php(515): Illuminate\Container\Container->offsetGet('config')
#7 .../vendor/laravel/framework/src/Illuminate/Log/LogManager.php(566): Illuminate\Log\LogManager->getDefaultDriver()
#8 .../vendor/laravel/framework/src/Illuminate/Log/LogManager.php(119): Illuminate\Log\LogManager->parseDriver(NULL)
#9 .../vendor/laravel/framework/src/Illuminate/Log/LogManager.php(702): Illuminate\Log\LogManager->driver()
#10 .../vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(274): Illuminate\Log\LogManager->log('error', 'substr(): Argum...', Array)
#11 .../vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(367): Illuminate\Foundation\Exceptions\Handler->report(Object(TypeError))
#12 .../vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(131): Illuminate\Foundation\Console\Kernel->reportException(Object(TypeError))
#13 .../artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 {main}
Next Illuminate\Contracts\Container\BindingResolutionException: Target class [config] does not exist. in .../vendor/laravel/framework/src/Illuminate/Container/Container.php:877
Stack trace:
#0 .../vendor/laravel/framework/src/Illuminate/Container/Container.php(756): Illuminate\Container\Container->build('config')
#1 .../vendor/laravel/framework/src/Illuminate/Foundation/Application.php(855): Illuminate\Container\Container->resolve('config', Array, true)
#2 .../vendor/laravel/framework/src/Illuminate/Container/Container.php(692): Illuminate\Foundation\Application->resolve('config', Array)
#3 .../vendor/laravel/framework/src/Illuminate/Foundation/Application.php(840): Illuminate\Container\Container->make('config', Array)
#4 .../vendor/laravel/framework/src/Illuminate/Container/Container.php(1415): Illuminate\Foundation\Application->make('config')
#5 .../vendor/laravel/framework/src/Illuminate/Log/LogManager.php(515): Illuminate\Container\Container->offsetGet('config')
#6 .../vendor/laravel/framework/src/Illuminate/Log/LogManager.php(566): Illuminate\Log\LogManager->getDefaultDriver()
#7 .../vendor/laravel/framework/src/Illuminate/Log/LogManager.php(119): Illuminate\Log\LogManager->parseDriver(NULL)
#8 .../vendor/laravel/framework/src/Illuminate/Log/LogManager.php(702): Illuminate\Log\LogManager->driver()
#9 .../vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(274): Illuminate\Log\LogManager->log('error', 'substr(): Argum...', Array)
#10 .../vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(367): Illuminate\Foundation\Exceptions\Handler->report(Object(TypeError))
#11 .../vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(131): Illuminate\Foundation\Console\Kernel->reportException(Object(TypeError))
#12 .../artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 {main}
thrown in .../vendor/laravel/framework/src/Illuminate/Container/Container.php on line 877
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 255
但这一次不是关于缓存。 不管错误提示什么,问题实际上是由在vendor/vlucas/phpdotenv/src/Util/Str.php
中找到的以下行引起的
$converted = $encoding === null ?
@\mb_convert_encoding($input, 'UTF-8') :
@\mb_convert_encoding($input, 'UTF-8', $encoding);
这实际上是因为我在构建 PHP 二进制文件时没有启用多字节字符串。 使用--enable-mbstring
重建 PHP 后,问题就消失了。
您应该运行“composer update”命令,然后运行“php artisan optimize”以清除配置缓存和路由。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.