Also ich versuche, Web-Sockets mit PHP auf einer Linux-Instanz einzurichten, und habe zwei Dateien. Beide Dateien befinden sich in meinem Verzeichnis/var/www/html. Die erste ist Chat.php
genannt und enthält den folgenden Code:PHP-Class-Datei nicht gefunden, obwohl es existiert
<?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) {
}
}
?>
Die zweite ist chat-server.php
und enthält diesen Code genannt:
<?php
use Ratchet\Server\IoServer;
use MyApp\Chat;
require dirname(__DIR__) . '/html/vendor/autoload.php';
$server = IoServer::factory(
new Chat(),
8084
);
$server->run();
?>
Wenn ich versuche, chat-server.php
ich die folgende Fehlermeldung auszuführen:
PHP Fatal error: Class 'MyApp\Chat' not found in /var/www/html/chat-server.php on line 8
So klar, es mag es nicht, wenn ich versuche, eine 01 zu initiierenweil es die Klasse nicht findet. Warum nicht?
Da die Klasse nicht in 'Chat-Server.php' ist, ist es in' Chat.php'. Sie müssten 'Chat.php' in' chat-server.php' einfügen, damit sie die Klassendefinition kennt. –
ist das nicht, was "MyApp \ Chat;" tut? –
Nein, das macht es nur so, dass Sie die Klasse als "Chat" anstatt des absoluten Namens von "MyApp \ Chat" bezeichnen können, wenn Sie es instanziieren. Du brauchst noch etwas wie "include" Chat.php ";". –