Php可以';我找不到跺脚班

Php可以';我找不到跺脚班,php,stomp,Php,Stomp,我正在尝试使用PHP客户端从activemq获取队列。我在项目中加入了一个stomp库。这是我的项目树: TestPhp/ ├── PhpInfo.php ├── SimpleStompConsumer.php └── Stomp ├── Exception    | └── StompException.php ├── ExceptionInterface.php ├── Frame.php ├── Message │   ├── Bytes.ph

我正在尝试使用PHP客户端从activemq获取队列。我在项目中加入了一个stomp库。这是我的项目树:

TestPhp/
├── PhpInfo.php
├── SimpleStompConsumer.php
└── Stomp
    ├── Exception
    |   └── StompException.php
    ├── ExceptionInterface.php
    ├── Frame.php
    ├── Message
    │   ├── Bytes.php
    │   └── Map.php
    ├── Message.php
    └── Stomp.php
这是我的密码

<?php
$path = "/var/www/test/TestPhp/Stomp/Stomp.php";

require_once($path);
$con = new Stomp("tcp://localhost:61613");
$con->connect();
$con->subscribe("/queue/test");
$msg = $con->readFrame();


if( $msg != null) {
    echo "Received message with body '$msg->body'\n";
    $con->ack($msg);
} else {
echo "Failed to receive a message\n";
}
$con->disconnect();

?>
图书馆被称为Stomp。这是你的电话号码 链接 以及链接

更改
$con=新跺脚(“tcp://localhost:61613");
$con=newfusesource\Stomp\Stomp(“tcp://localhost:61613");$con=new FuseSource\Stomp\Stomp(“tcp://localhost:61613");

PHP致命错误:在第174行的/var/www/test/TestPhp/Stomp/Stomp.PHP中找不到类“FuseSource\Stomp\Exception\StompException”
PHP堆栈跟踪:
PHP1。{main}()/var/www/test/TestPhp/SimpleStompConsumer.php:0
PHP2。FuseSource\Stomp\Stomp->connect()/var/www/test/TestPhp/SimpleStompConsumer.php:6
PHP3。FuseSource\Stomp\Stomp->\u makeConnection()/var/www/test/TestPhp/Stomp/Stomp.php:195

试试看

$con = new FuseSource\Stomp\Stomp("tcp://localhost:61613");
(名称空间)


编辑:缺少一个“Stomp”。

Stomp库是一个composer包,因此您需要composer类装入器或任何其他兼容PSR-0的程序,请参见此

PHP中的PSR-0类加载器示例图:

除了它的名称空间类之外,还要将这一行添加到您的文件中:

use FuseSource\Stomp\Stop;
new Stomp();
或使用

new FuseSource\Stomp\Stomp();

对我来说,问题在于
stomp.so
没有在我的Apache PHP引擎中注册。我使用了
pear
来安装stomp,它在我的命令行PHP引擎中正确注册了它

我的Apache中的PHP引擎使用的是一个
/etc/PHP.ini
文件,与本地命令行上运行的PHP引擎使用的
/usr/local/etc/PHP/5.5/PHP.ini
文件不同。据我所知,这是推荐的配置(请参阅)

为了补救,我需要将
extension=“stomp.so”
添加到Apache服务使用的
/etc/php.ini
文件中,然后重新启动Apache


我的代码没有一次
require\u
。我只需调用
$con=newstomp('tcp://localhost:61613“,$user,$password)
直接

这个类实际上被称为
Stomp
?你能链接到你正在使用的图书馆吗?可能是我用错了图书馆吗?我试图从下载,但链接有点死了。在Stomp.php中的第174行和第195行有什么内容?可能会在缺少“Stomp”的情况下重试
$con = new FuseSource\Stomp\Stomp("tcp://localhost:61613");
require_once 'path_to_spl_class_loader.php';
$loader = new SplClassLoader('FuseSource\Stomp', __DIR__.'/Stomp');
$loader->register();
new FuseSource\Stomp\Stomp();
use FuseSource\Stomp\Stop;
new Stomp();
new FuseSource\Stomp\Stomp();