[英]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.