所以我正在尝试在linux实例上使用php设置Web套接字,并且有两个文件。这两个文件都在我的/ var / www / html目录中。第一个名为Chat.php
,包含以下代码:
<?php
namespace MyApp;
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
class Chat implements MessageComponentInterface {
public function onOpen(ConnectionInterface $conn) {
}
public function onMessage(ConnectionInterface $from, $msg) {
}
public function onClose(ConnectionInterface $conn) {
}
public function onError(ConnectionInterface $conn, \Exception $e) {
}
}
?>
第二个名为chat-server.php
并包含以下代码:
<?php
use Ratchet\Server\IoServer;
use MyApp\Chat;
require dirname(__DIR__) . '/html/vendor/autoload.php';
$server = IoServer::factory(
new Chat(),
8084
);
$server->run();
?>
当我尝试运行chat-server.php
时,收到以下错误消息:
PHP Fatal error: Class 'MyApp\Chat' not found in /var/www/html/chat-server.php on line 8
很明显,当我尝试发起new Chat()
时,它不喜欢它,因为它找不到类。为什么不呢?
答案 0 :(得分:0)
我建议您在首次编辑composer.json文件后重新生成Composer自动加载器(autoload.php),方法是在autoload属性下添加以下内容:
"psr-4": {"MyApp\\": "/"}
这将定义命名空间与目录之间的新映射。 然后,要重新生成自动加载脚本,只需键入:
composer dumpautoload -o
此外,要求自动装带器应放在脚本的顶部。 有关更多详细信息,请查看作曲家关于自动加载的官方文档:https://getcomposer.org/doc/01-basic-usage.md#autoloading