这是出现的致命错误消息:
Script SensioBundleDistributionBundleComposerScriptHandler::clearCache handling the post-install-cmd event terminated with an exception
[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'" command:
PHP Fatal error: Uncaught SymfonyComponentDebugExceptionContextErrorEx
ception: Warning: Declaration of SncRedisBundleClientPhpredisClient::ge
t() should be compatible with Redis::get($key) in /home/PRIVATE/Prop/ve
ndor/snc/redis-bundle/Client/Phpredis/Client.php:1389
Stack trace:
#0 /home/PRIVATE/Prop/vendor/symfony/symfony/src/Symfony/Component/Debu
g/DebugClassLoader.php(169): SymfonyComponentDebugErrorHandler->handleEr
ror(2, 'Declaration of ...', '/home/nienormal...', 1389, Array)
#1 /home/PRIVATE/Prop/vendor/symfony/symfony/src/Symfony/Component/Debu
g/DebugClassLoader.php(169): require_once()
#2 [internal function]: SymfonyComponentDebugDebugClassLoader->loadClass
('Snc\RedisBundle...')
#3 /home/PRIVATE/Prop/app/cache/dev/appDevDebugProjectContainer.php(577
0): spl_autoload_call('Snc\RedisBundle...')
#4 /home/PRIVATE/Prop/vendor/symfony/symfony/src/Symfony/Component/Depe
ndencyInjection/Container.php(314): appDevDebugProjectContainer->getSncRedi
s_CacheService()
#5 /home/PRIVATE/Prop/app/c in /home/PRIVATE/Prop/vendor/snc/redis-
bundle/Client/Phpredis/Client.php on line 1389
此项目是从 git 克隆的,此错误发生在从 composer install
安装数据包后。
我想在 Ubuntu 平台上运行项目,但我在这个主题上完全是绿色的。
对不起,我的英语不好,但也许有人会帮助我使用这个黑暗魔法。
升级到 php-redis 3.1.4RC 后我遇到了同样的错误。看起来引入了BC中断功能
对于ondrej
ubuntu 存储库
cd /tmp
wget https://launchpad.net/~ondrej/+archive/ubuntu/php/+build/12376478/+files/php-redis_3.1.2-1+deb.sury.org~trusty+1_amd64.deb
sudo dpkg -i php-redis_3.1.2-1+deb.sury.org~trusty+1_amd64.deb
您遇到的错误似乎不是与作曲家链接,而是与Symfony应用程序中的RedisBundle链接。
请参阅此消息:
Uncaught SymfonyComponentDebugExceptionContextErrorException: Warning: Declaration of SncRedisBundleClientPhpredisClient::get() should be compatible with Redis::get($key) in /home/PRIVATE/Prop/vendor/snc/redis-bundle/Client/Phpredis/Client.php:1389
显然你有一个Client
类:在SncRedisBundleClientPhpredisClient.php
中,它继承了 Redis 的/home/PRIVATE/Prop/vendor/snc/redis-bundle/Client/Phpredis/Client.php
。由于它是继承的,因此这两种方法应具有相同的签名。
因此,即使您不使用 $key
参数,也可以将您的方法更改为 -> Client::get($key)
Client::get()
。它应该工作正常。
您可以从源代码安装 phpredis 3.1.2。只需克隆存储库,切换到标记 3.1.2 并运行:
phpize
./configure
make && make install
然后在扩展的 ini 文件中更新路径以redis.so
。重新加载 PHP