2015-10-22 2 views
0

Я использую трещотка создать сервер WebSocket, но у меня есть проблема ....
как писать свои собственные классы и использовать их в это ....как добавить свой собственный класс ratchat сервера

PHP:

<?php 
    namespace MyApp; 
    use Ratchet\MessageComponentInterface; 
    use Ratchet\ConnectionInterface; 

    define ("ABSPATH" , "D:/MyProject/server/bin/"); 
    require_once ABSPATH."config.php"; 

    require_once ABSPATH."classes/clients.php";// <--- i required this file that 
//it contain clients class 
//but when i want to use it i get error that this class notfound 

    class Poker implements MessageComponentInterface { 
     protected $clients; 

     public function __construct(){ 
      $this->clients = array(); 
     } 
     public function onOpen(ConnectionInterface $conn) { 

      $client = new clients($conn);//here i get error 
      array_push($this->clients,$client); 

     } 
     public function onMessage(ConnectionInterface $from, $msg) { 

    } 
     public function onClose(ConnectionInterface $conn) { 

     } 
     public function onError(ConnectionInterface $conn, \Exception $e) { 

     } 
    } 

я необходим файл класса

require_once ABSPATH."classes\clients.php"; 

, но в этой строке я получаю ошибку

$client = new clients($conn);// ERROR CLASS NOT FOUND 

ОШИБКА:

Fatal error: Class 'MyApp\clients' not found in D:\MyProject\server\src\MyAp 
p\Poker.php on line 18 
+0

Ну делает класс так называемые клиенты существуют? – Daan

+0

в соответствии с вашей ошибкой, я предполагаю, что ваш путь включения неверен. – FisherMartyn

+0

нет, если я добавлю некоторое эхо в путь включения, он покажет эхо-сообщение, но только я не могу использовать класс @FisherMartyn – HERO

ответ

3

Это происходит потому, что текущий файл находится в пространстве имен, но я предполагаю, что файл с классом клиентов не является?

Попробуй добавить

namespace MyApp; 

к clients.php, если вы хотите, то, чтобы создать новые выделенные имена вы затем должны use его, как две строк в текущем файле