RabbitMQQueue::createPayloadArray($job, $queue, $data = '') 的声明应该与 Queue::createPayloadArray($job, $data = '') 兼容
Declaration of RabbitMQQueue::createPayloadArray($job, $queue, $data = '') should be compatible with Queue::createPayloadArray($job, $data = '')
这是我的情况。我在 Laravel 5.7
。对于队列,我使用 this 版本为 8.3.0
的包。
现在,当我尝试启动队列工作程序时,它呈现以下错误:
Declaration of
VladimirYuldashev\LaravelQueueRabbitMQ\Queue\RabbitMQQueue::createPayloadArray($job,
$queue, $data = '') should be compatible with
Illuminate\Queue\Queue::createPayloadArray($job, $data = '')
{"exception":"[object] (ErrorException(code: 0): Declaration of
VladimirYuldashev\LaravelQueueRabbitMQ\Queue\RabbitMQQueue::createPayloadArray($job,
$queue, $data = '') should be compatible with
Illuminate\Queue\Queue::createPayloadArray($job, $data = '') at
/home/vagrant/code/phirater-l51/vendor/vladimir-yuldashev/laravel-queue-rabbitmq/src/Queue/RabbitMQQueue.php:17)
这是堆栈跟踪:
[2021-01-05 08:59:26] local.ERROR: Declaration of VladimirYuldashev\LaravelQueueRabbitMQ\Queue\RabbitMQQueue::createPayloadArray($job, $queue, $data = '') should be compatible with Illuminate\Queue\Queue::createPayloadArray($job, $data = '') {"exception":"[object] (ErrorException(code: 0): Declaration of VladimirYuldashev\LaravelQueueRabbitMQ\Queue\RabbitMQQueue::createPayloadArray($job, $queue, $data = '') should be compatible with Illuminate\Queue\Queue::createPayloadArray($job, $data = '') at /home/vagrant/code/phirater-l51/vendor/vladimir-yuldashev/laravel-queue-rabbitmq/src/Queue/RabbitMQQueue.php:17)
[stacktrace]
#0 /home/vagrant/code/phirater-l51/vendor/vladimir-yuldashev/laravel-queue-rabbitmq/src/Queue/RabbitMQQueue.php(17): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'Declaration of ...', '/home/vagrant/c...', 17, Array)
#1 /home/vagrant/code/phirater-l51/vendor/composer/ClassLoader.php(444): include('/home/vagrant/c...')
#2 /home/vagrant/code/phirater-l51/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/home/vagrant/c...')
#3 [internal function]: Composer\Autoload\ClassLoader->loadClass('VladimirYuldash...')
#4 /home/vagrant/code/phirater-l51/app/Domain/Configuration/MultiTenantQueue/Queue.php(19): spl_autoload_call('VladimirYuldash...')
#5 /home/vagrant/code/phirater-l51/vendor/composer/ClassLoader.php(444): include('/home/vagrant/c...')
#6 /home/vagrant/code/phirater-l51/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/home/vagrant/c...')
#7 [internal function]: Composer\Autoload\ClassLoader->loadClass('Phirater\\Domain...')
#8 /home/vagrant/code/phirater-l51/app/Domain/Configuration/MultiTenantQueue/Connector.php(36): spl_autoload_call('Phirater\\Domain...')
#9 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php(157): Phirater\Domain\Configuration\MultiTenantQueue\Connector->connect(Array)
#10 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php(138): Illuminate\Queue\QueueManager->resolve('worker')
#11 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(107): Illuminate\Queue\QueueManager->connection('worker')
#12 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(101): Illuminate\Queue\Worker->daemon('worker', 'dev', Object(Illuminate\Queue\WorkerOptions))
#13 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(85): Illuminate\Queue\Console\WorkCommand->runWorker('worker', 'dev')
#14 [internal function]: Illuminate\Queue\Console\WorkCommand->handle()
#15 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array)
#16 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#17 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#18 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Container/Container.php(564): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#19 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Console/Command.php(183): Illuminate\Container\Container->call(Array)
#20 /home/vagrant/code/phirater-l51/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#21 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Console/Command.php(170): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#22 /home/vagrant/code/phirater-l51/vendor/symfony/console/Application.php(1009): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /home/vagrant/code/phirater-l51/vendor/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /home/vagrant/code/phirater-l51/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Console/Application.php(89): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(122): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 /home/vagrant/code/phirater-l51/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#28 {main}
"}
我的包配置与 github
文档中提到的完全一样。我在 Laravel 5.
7 和 PHP 7.3
。这个问题的解决方案是什么?有帮助吗?
看起来这个包与 laravel 版本有非常复杂的版本关系(现在不支持 5.7)。
根据此提交 - https://github.com/vyuldashev/laravel-queue-rabbitmq/commit/3ee048910abb54b7fd730ea328ddb1db8161a563 - you can try either 11 or 7 (see https://github.com/vyuldashev/laravel-queue-rabbitmq/issues/229)
这是我的情况。我在 Laravel 5.7
。对于队列,我使用 this 版本为 8.3.0
的包。
现在,当我尝试启动队列工作程序时,它呈现以下错误:
Declaration of VladimirYuldashev\LaravelQueueRabbitMQ\Queue\RabbitMQQueue::createPayloadArray($job, $queue, $data = '') should be compatible with Illuminate\Queue\Queue::createPayloadArray($job, $data = '') {"exception":"[object] (ErrorException(code: 0): Declaration of VladimirYuldashev\LaravelQueueRabbitMQ\Queue\RabbitMQQueue::createPayloadArray($job, $queue, $data = '') should be compatible with Illuminate\Queue\Queue::createPayloadArray($job, $data = '') at /home/vagrant/code/phirater-l51/vendor/vladimir-yuldashev/laravel-queue-rabbitmq/src/Queue/RabbitMQQueue.php:17)
这是堆栈跟踪:
[2021-01-05 08:59:26] local.ERROR: Declaration of VladimirYuldashev\LaravelQueueRabbitMQ\Queue\RabbitMQQueue::createPayloadArray($job, $queue, $data = '') should be compatible with Illuminate\Queue\Queue::createPayloadArray($job, $data = '') {"exception":"[object] (ErrorException(code: 0): Declaration of VladimirYuldashev\LaravelQueueRabbitMQ\Queue\RabbitMQQueue::createPayloadArray($job, $queue, $data = '') should be compatible with Illuminate\Queue\Queue::createPayloadArray($job, $data = '') at /home/vagrant/code/phirater-l51/vendor/vladimir-yuldashev/laravel-queue-rabbitmq/src/Queue/RabbitMQQueue.php:17)
[stacktrace]
#0 /home/vagrant/code/phirater-l51/vendor/vladimir-yuldashev/laravel-queue-rabbitmq/src/Queue/RabbitMQQueue.php(17): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'Declaration of ...', '/home/vagrant/c...', 17, Array)
#1 /home/vagrant/code/phirater-l51/vendor/composer/ClassLoader.php(444): include('/home/vagrant/c...')
#2 /home/vagrant/code/phirater-l51/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/home/vagrant/c...')
#3 [internal function]: Composer\Autoload\ClassLoader->loadClass('VladimirYuldash...')
#4 /home/vagrant/code/phirater-l51/app/Domain/Configuration/MultiTenantQueue/Queue.php(19): spl_autoload_call('VladimirYuldash...')
#5 /home/vagrant/code/phirater-l51/vendor/composer/ClassLoader.php(444): include('/home/vagrant/c...')
#6 /home/vagrant/code/phirater-l51/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/home/vagrant/c...')
#7 [internal function]: Composer\Autoload\ClassLoader->loadClass('Phirater\\Domain...')
#8 /home/vagrant/code/phirater-l51/app/Domain/Configuration/MultiTenantQueue/Connector.php(36): spl_autoload_call('Phirater\\Domain...')
#9 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php(157): Phirater\Domain\Configuration\MultiTenantQueue\Connector->connect(Array)
#10 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Queue/QueueManager.php(138): Illuminate\Queue\QueueManager->resolve('worker')
#11 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(107): Illuminate\Queue\QueueManager->connection('worker')
#12 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(101): Illuminate\Queue\Worker->daemon('worker', 'dev', Object(Illuminate\Queue\WorkerOptions))
#13 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(85): Illuminate\Queue\Console\WorkCommand->runWorker('worker', 'dev')
#14 [internal function]: Illuminate\Queue\Console\WorkCommand->handle()
#15 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array)
#16 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#17 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#18 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Container/Container.php(564): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#19 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Console/Command.php(183): Illuminate\Container\Container->call(Array)
#20 /home/vagrant/code/phirater-l51/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#21 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Console/Command.php(170): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#22 /home/vagrant/code/phirater-l51/vendor/symfony/console/Application.php(1009): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /home/vagrant/code/phirater-l51/vendor/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /home/vagrant/code/phirater-l51/vendor/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Console/Application.php(89): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 /home/vagrant/code/phirater-l51/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(122): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 /home/vagrant/code/phirater-l51/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#28 {main}
"}
我的包配置与 github
文档中提到的完全一样。我在 Laravel 5.
7 和 PHP 7.3
。这个问题的解决方案是什么?有帮助吗?
看起来这个包与 laravel 版本有非常复杂的版本关系(现在不支持 5.7)。
根据此提交 - https://github.com/vyuldashev/laravel-queue-rabbitmq/commit/3ee048910abb54b7fd730ea328ddb1db8161a563 - you can try either 11 or 7 (see https://github.com/vyuldashev/laravel-queue-rabbitmq/issues/229)