php - 未捕获的错误:找不到类“PhpAmqpLib\Connection\AMQPStreamConnection”
问题描述
我已经成功安装了 RabbitMQ、Composer 及其依赖项,如供应商文件夹和 phpamqplib。
但是,它仍然给我一个找不到 AMQPStreamConnection 的错误。谁能帮我?这是我的代码-
<?php
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
$connection = new AMQPStreamConnection('localhost', 15672, 'guest', 'guest');
$channel = $connection->channel();
$channel->queue_declare('task_queue', false, true, false, false);
$data = implode(' ', array_slice($argv, 1));
if (empty($data)) {
$data = "Hello World!";
}
$msg = new AMQPMessage(
$data,
array('delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT)
);
$channel->basic_publish($msg, '', 'task_queue');
echo ' [x] Sent ', $data, "\n";
$channel->close();
$connection->close();
?>
解决方案
这很可能是因为php-amqplib无法正确安装。
我在composer install方面遇到了我不知道的问题,因为无法安装php-amqplib 。
作曲家.json
“php-amqplib/php-amqplib”:“>=2.9.0”
作曲家安装的问题:
然后我运行了composer update但这也带来了问题,因为composer.json中有一些库
然后我终于不得不运行以下命令来查看php-amqplib的成功安装,这解决了这个问题。此命令对您来说可能会有所不同,因为您的系统上的安装可能存在不同的问题。只需关注作曲家命令输出。
命令:
作曲家更新 --no-plugins --no-scripts magento-hackathon/magento-composer-installer
输出:
PHP 文件:
<?php
require_once('../../app/Mage.php');
Mage::app();
require_once '../../vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
$channel->queue_declare('rabbitmq-dev', false, false, false, false);
$msg = new AMQPMessage('Hello World!');
$channel->basic_publish($msg, '', 'hello');
echo " [x] Sent 'Hello World!'\n";
$channel->close();
$connection->close(); ?>