从项目安装作曲家的 PHP 致命错误



这是出现的致命错误消息:

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

相关内容

  • 没有找到相关文章

最新更新