我在这里尝试了所有答案,但没有运气。
奇怪的是,如果我只是运行命令composer update
得到这个:
forge@development:~/default$ composer update
Cannot create cache directory /home/forge/.composer/cache/repo/https---packagist.org/, or directory is not writable. Proceeding without cache
Cannot create cache directory /home/forge/.composer/cache/files/, or directory is not writable. Proceeding without cache
> php artisan clear-compiled
The compiled class file has been removed.
> php artisan ide-helper:generate
[SymfonyComponentDebugExceptionFatalThrowableError]
Class 'PredisClient' not found
跑步只是php artisan ide-helper:generate
给我
[SymfonyComponentDebugExceptionFatalThrowableError]
Class 'PredisClient' not found
删除整个vendor
目录然后运行composer install
给了我这个输出。
这是我的composer.lock和我的composer.json文件。
运行命令composer require predis/predis
也会返回相同的错误:
> php artisan clear-compiled
The compiled class file has been removed.
> php artisan ide-helper:generate
[SymfonyComponentDebugExceptionFatalThrowableError]
Class 'PredisClient' not found
你有什么想法吗?
更新
这是一个解决方法,但不是根本解决方案。运行:
composer update --no-scripts
这将跳过
"scripts": {
"post-install-cmd": [
..
],
"pre-update-cmd": [
"php artisan clear-compiled",
"php artisan ide-helper:generate",
"php artisan ide-helper:models -N",
"php artisan optimize"
],
部分,这已经足够了。这确实看起来像是 laravel-ide-helper 的错误,很快就会报告错误。
来自laravel-ide-helper
自述文件:
当您收到有关未找到的类的 FatalException 时,请检查您的配置(例如......不使用 Redis 服务提供商时将其删除(
因此,如果您不使用 Redis,请从config/app.php
中删除RedisServiceProvider
和Redis
别名。然后清除带有php artisan config:clear
的配置缓存。