我的程序 laravel8 ,PHP 是 8.0.8 ,安装了 memcached 扩展,php -v 显示版本 8.0.8 ,php -m 可以看到 memcached 扩展。
同样的命令 composer dump-autoload ,系统的终端中执行是正常的,在 VS code 集成终端中就报错。难不成 vscode 还有什么特殊的配置?并且我在集成终端和系统终端运行 php -v 、php -m 结果是一样的。
报错信息:
Class "Memcached" not found
at vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php:69 65| * @return \Memcached 66| */ 67| protected function createMemcachedInstance($connectionId) 68| {
69| return empty($connectionId) ? new Memcached : new Memcached($connectionId); 70| } 71| 72| /** 73| * Set the SASL credentials on the Memcached connection.
+9 vendor frames
10 [internal]:0 Spatie\Permission\PermissionRegistrar::__construct(Object(Illuminate\Cache\CacheManager))
+14 vendor frames
25 [internal]:0 Illuminate\Foundation\Application::Illuminate\Foundation{closure}(Object(Spatie\Permission\PermissionServiceProvider)) Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
1
FrankAdler 2022-05-23 02:00:52 +08:00 via iPhone
环境变量不一致,导致调用的不是同一个 php 吧
|
2
dzdh 2022-05-23 08:28:36 +08:00
composer.json 里加一个 script. php -i
|
3
freadman OP @FrankAdler 确实是这个问题,安装了多个 PHP 。
|