Я использую приложение Symfony 2.7, которое взаимодействует с сервером Redis.Приложение работает на сервере Ubuntu 18.04.с php7.2.
Я использую библиотеку snc_redisbundle для взаимодействия между Symfony и Redis.В основном я использую только команды: `` `
$redis->setEx(...);
$redis->get(...);
При использовании одного из этих методов я получаю следующее предупреждение (Stacktrace):
PHP Warning: Redis::setex() expects exactly 3 parameters, 0 given in /vagrant/app/cache/prod/appProdProjectContainer.php on line 6954
PHP Stack trace:
PHP 1. {main}() /vagrant/app/console:0
PHP 2. JMS\JobQueueBundle\Console\Application->run() /vagrant/app/console:28
PHP 3. JMS\JobQueueBundle\Console\Application->doRun() /vagrant/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:114
PHP 4. JMS\JobQueueBundle\Console\Application->doRun() /vagrant/vendor/jms/job-queue-bundle/JMS/JobQueueBundle/Console/Application.php:45
PHP 5. JMS\JobQueueBundle\Console\Application->doRun() /vagrant/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:82
PHP 6. JMS\JobQueueBundle\Console\Application->doRunCommand() /vagrant/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:190
PHP 7. AppBundle\Command\ImportTransactionsCommand->run() /vagrant/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:850
PHP 8. AppBundle\Command\ImportTransactionsCommand->execute() /vagrant/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:238
PHP 9. Redis_000000001e6eb7de00000000076bcf86fcaf778105bfb1fa4a93de3bacb39221->setex() /vagrant/src/AppBundle/Command/ImportTransactionsCommand.php:240
PHP 10. Redis->setex() /vagrant/app/cache/prod/appProdProjectContainer.php:6954
PHP Warning: Redis::get() expects exactly 1 parameter, 0 given in /vagrant/app/cache/prod/appProdProjectContainer.php on line 6944
PHP Stack trace:
PHP 1. {main}() /vagrant/app/console:0
PHP 2. JMS\JobQueueBundle\Console\Application->run() /vagrant/app/console:28
PHP 3. JMS\JobQueueBundle\Console\Application->doRun() /vagrant/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:114
PHP 4. JMS\JobQueueBundle\Console\Application->doRun() /vagrant/vendor/jms/job-queue-bundle/JMS/JobQueueBundle/Console/Application.php:45
PHP 5. JMS\JobQueueBundle\Console\Application->doRun() /vagrant/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:82
PHP 6. JMS\JobQueueBundle\Console\Application->doRunCommand() /vagrant/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:190
PHP 7. AppBundle\Command\ImportTransactionsCommand->run() /vagrant/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:850
PHP 8. AppBundle\Command\ImportTransactionsCommand->execute() /vagrant/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:238
PHP 9. Redis_000000001e6eb7de00000000076bcf86fcaf778105bfb1fa4a93de3bacb39221->get() /vagrant/src/AppBundle/Command/ImportTransactionsCommand.php:334
PHP 10. Redis->get() /vagrant/app/cache/prod/appProdProjectContainer.php:6944
Я не понимаю, почемуон жалуется на количество предоставленных параметров, так как я предоставляю параметры в своем коде.
Предупреждение относится к файлу appProdProjectContainer.php, но я не могу изменить здесь функцию, так как файл автоматически генерируется при прогреве кеша Symfony.
Код консоли:
$redis = $this->container->get('snc_redis.clients.default');
$redis->setEx("shadow__".$pid, $lifeTime, 'created_at_'.date('Y-m-d H:i:s'));
$expireValue = $redis->get($expireKey);
Надеюсь, вы, ребята, можете помочь мне найти решение, заранее спасибо