【问题标题】:"Class 'Symfony\Component\Translation\Loader\ArrayLoader' not found"“找不到类 'Symfony\Component\Translation\Loader\ArrayLoader'”
【发布时间】:2021-11-20 08:05:07
【问题描述】:

我尝试使用 composer 创建新的 laravel 项目,但出现上述错误。有什么帮助吗?

这是我使用的命令: "composer create-project --prefer-dist laravel/laravel 项目名称"

一些输出错误: 位于 ./vendor/symfony/translation/TranslatorPassTest.php 的类 Symfony\Component\Translation\Tests\DependencyInjection\TranslatorPassTest 不符合 psr-4 自动加载标准。跳过。

类 Symfony\Component\Translation\Loader\ArrayLoader 位于 ./vendor/symfony/translation/ArrayLoader.php 不符合 psr-4 自动加载标准。跳过。

位于 ./vendor/symfony/translation/Provider/NullProviderFactoryTest.php 的类 Symfony\Component\Translation\Tests\Provider\NullProviderFactoryTest 不符合 psr-4 自动加载标准。跳过。

【问题讨论】:

  • 你已经做过什么,试过了吗?你用什么命令来创建新项目?
  • 我试过这个命令“composer create-project --prefer-dist laravel/laravel project-name”。谢谢。
  • 检查整个输出,看看安装任何依赖项是否有任何错误
  • github.com/symfony/symfony/issues/43212 - 这是一个相当新但已知的错误
  • 我知道我并不孤单。基本上初始版本(即“symfony/translation”:“v5.3.7”)现在可以工作。

标签: laravel composer-php


【解决方案1】:

我已经恢复了我的 composer.lock 然后只是 composer install。似乎没有正确设置翻译器的新更新。对于新安装,解决方案应该是 user3672987 提供的临时解决方案。

【讨论】:

  • 这是一个临时解决方案。
【解决方案2】:

在考虑到命名空间更改之前,您可以临时设置

"symfony/translation": "v5.3.7"

composer update 更新它,它应该会再次工作。

【讨论】:

    【解决方案3】:

    软件包已更新为:

    "symfony/translation": "v5.3.9"

    而且运行良好。

    https://github.com/symfony/translation/releases/tag/v5.3.9

    【讨论】:

      【解决方案4】:

      临时解决方案:

      您可以通过将此行临时添加到您的 composer.json 来快速修复它

      "symfony/translation": "v5.3.7",


      初步答案:

      我也一样,当我尝试安装新项目或在任何项目上使用 composer installcomposer update 时出现此错误:

      > @php artisan package:discover --ansi
      
         Error 
      
        Class "Symfony\Component\Translation\Loader\ArrayLoader" not found
      
        at vendor/nesbot/carbon/src/Carbon/Translator.php:80
           76▕     public function __construct($locale, Translation\Formatter\MessageFormatterInterface $formatter = null, $cacheDir = null, $debug = false)
           77▕     {
           78▕         $this->initializing = true;
           79▕         $this->directories = [__DIR__.'/Lang'];
        ➜  80▕         $this->addLoader('array', new Translation\Loader\ArrayLoader());
           81▕         parent::__construct($locale, $formatter, $cacheDir, $debug);
           82▕         $this->initializing = false;
           83▕     }
           84▕ 
      
            +13 vendor frames 
        14  [internal]:0
            Illuminate\Foundation\Application::Illuminate\Foundation\{closure}(Object(Carbon\Laravel\ServiceProvider))
      
            +5 vendor frames 
        20  artisan:37
            Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
      Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
      

      编辑:

      显然,symfony/translation 包有一个小版本,它改变了 ArrayLoader 的命名空间:

      https://github.com/symfony/translation/releases/tag/v5.3.8

      https://github.com/briannesbitt/Carbon/issues/2466

      【讨论】:

      • 这里一样.. 好像有错误或最新更新的东西
      猜你喜欢
      • 2019-05-18
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-14
      • 2014-11-11
      相关资源
      最近更新 更多