所以我試圖在Linux實例上設置php的網絡套接字,並有兩個文件。這兩個文件都在我的/ var/www/html目錄中。第一個被稱爲Chat.php
,包含以下代碼:找不到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()
,因爲它沒有找到類。爲什麼不?
因爲該類不在'chat-server.php'中,所以它在'Chat.php'中。您需要將'Chat.php'包含到'chat-server.php'中,以便它知道類的定義。 –
是不是'使用MyApp \ Chat;'在做什麼? –
不,這只是讓你可以在實例化時將該類稱爲「聊天」而不是「MyApp \ Chat」的絕對名稱。你仍然需要類似'include「Chat.php」;'。 –