gpt4 book ai didi

php - 运行 Symfony 命令时无法加载 PHP 类

转载 作者:行者123 更新时间:2023-12-04 02:28:04 32 4
gpt4 key购买 nike

对于以下问题,我将不胜感激。

我已经设置 Symfony Messenger 以使用 AMQP 和 RabbitMQ。我可以在我的项目中发送消息并使用 AMQPConnection。

但是当我尝试使用该消息时,我得到以下信息:

$ php bin/console messenger:consume-messages amqp

尝试从全局命名空间加载类“AMQPConnection”。
您是否忘记了“PhpAmqpLib\Connection\AMQPConnection”的“使用”语句?

控制台命令调用 AmqpFactory.php 内的方法

公共(public)函数 createConnection(array $credentials):\AMQPConnection
{
返回新的\AMQPConnection($credentials);
}

因此,当我从浏览器运行项目时,一切正常。我可以使用 AMQPConnection 和所有。但是从终端运行时,它找不到 AMQPConnection 类。

在我的 composer.json 中,我还安装了 amqplib

"php-amqplib/php-amqplib": "^2.7",

我使用 Docker,Dockerfile 包含:

来自 php:7-apache

运行 usermod -u 1000 www-data &&\
a2dissite 000-默认 &&\
apt-get 更新 &&\
apt-get 安装 -y\
zlib1g-开发\
libicu开发者\
克++\
libfreetype6-开发\
libssh-开发\
libjpeg62-turbo-dev\
libmcrypt-开发\
librabbitmq-开发\
libpng-开发 &&\
docker-php-ext-configure 国际 &&\
docker-php-ext-configure gd --with-freetype-dir=/usr/include/--with-jpeg-dir=/usr/include/&&\
docker-php-ext-install -j$(nproc) gd pdo_mysql intl opcache zip pcntl exif bcmath sockets &&\
a2enmod 重写

运行 pecl 安装 amqp\
&& docker-php-ext-启用 amqp

复制 docker/apache2.conf/etc/apache2/apache2.conf

工作目录/var/www/project

更新!
我已经打印了 phpinfo() 并且在发送消息时我有版本 7.2.8 并且在执行终端命令时我有 7.2.7。所以终端在执行命令时没有使用 PHP 的 Docker 实例。

最佳答案

您缺少包裹librabbitmq4在你的 Docker 容器中。添加 RUN apt-get update --fix-missing && apt-get update && apt-get install php-amqp到您的 Dockerfile 并重建图像。

关于php - 运行 Symfony 命令时无法加载 PHP 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51720663/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com