When I create a new composer project for laravel
composer create-project laravel/laravel laravel
I get the following error
> @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}()
5 vendor frames
20 artisan:37
Illuminate\Foundation\Console\Kernel::handle()
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
I run it inside PHP 7.4.24 docker container (macOS) with the latest stable composer (2.1.8).
Full log https://pastebin.pl/view/bb4ae413
CodePudding user response:
Seems many people have the same issue
Downgrade temporarilyy and manually to symfony/translate 5.3.7 or lower
CodePudding user response:
There seems to be a bug or incompatibility introduced in Symfony components on version 4.3.8.
Just add this to your composer.json
:
"conflict": {
"symfony/symfony": "*",
"symfony/translation": "v5.3.8",
"symfony/messenger": "v5.3.8",
"symfony/mailer": "v5.3.8",
"symfony/notifier": "v5.3.8"
},
Run composer update
and the old versions will be installed. When 5.3.9 is released, the new ones will be installed automatically without having to change anything.
The core team is aware of this issue, and a fix will be surely released shortly.
CodePudding user response:
If you have symphony in composer.json file, downgrading the version would work. If not just add "Symfony/translation": "4.3.8"
"require": {
...
"symfony/translation": "4.3.8",
}
and then
composer update
The version may be different so keep that in mind.