簡體   English   中英

致命錯誤:未捕獲的 ReflectionException:Class 配置不存在

[英]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.lockphp artisan config:cache ,然后您應該一切順利。

您是否更改了.env文件,錯誤地我添加了一個帶有空格的"APP_NAME=aaa aa " ,然后檢查了每個位置,之后APP_NAME=更改為不帶空格,現在工作魅力。

您可以檢查以下項目

  1. 檢查您的 APP_NAME 是否有空間。 如果有空格,請在引號中使用。
  2. 從 bootstrap/cache/ 文件夾中刪除所有內容。
  3. 運行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM