未捕获错误:未找到类“PhpAmqpLib\Connection\AMQPStreamConnection”

问题描述 投票:0回答:2

我已成功安装 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 rabbitmq
2个回答
2
投票

这很可能是因为php-amqplib无法正确安装。

我遇到了 composer install 的问题,但我不知道,因为无法安装 php-amqplib

composer.json

“php-amqplib/php-amqplib”:">=2.9.0"

composer 安装问题:

Issues with composer install

然后我运行了 composer update 但这也带来了问题,因为 composer.json 中的一些库

最后我必须运行以下命令才能看到 php-amqplib 的成功安装,这解决了问题。该命令对您来说可能会有所不同,因为您的系统上的安装可能会出现不同的问题。只需留意 Composer 命令输出即可。

命令:

作曲家更新 --no-plugins --no-scripts magento-hackathon/magento-composer-installer

输出:

enter image description here

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(); ?>

0
投票

composer 需要 php-amqplib/php-amqplib 尝试这个并在安装 Composer 后

© www.soinside.com 2019 - 2024. All rights reserved.