PHP Неустранимая ошибка: класс 'MyApp \ Chat' не найден в /MyApp/chat-server.php

Я пытаюсь запустить демонстрацию приложения Ratchet, но я не могу выполнить файл

Это моя файловая структура

/var/www/src/MyApp/ /var/www/src/MyApp/chat.php /var/www/src/MyApp/chat-server.php 
 <? PHP
 использовать Ratchet \ Server \ IoServer;
 используйте MyApp \ Chat;

 #require "chat.php";

     require 'vendor / autoload.php';

     $ server = IoServer :: factory (
         новый чат (),
         8080
     );

     $ Server-> Run ();
 /var/www/src/MyApp/composer.json 
 {
     "autoload": {
         "psr-0": {
             «MyApp»: «src»
         }
     },
     "require": {
         "cboden / Ratchet": "0.3. *"
     }
 }

Папка поставщика существует в этом месте

 /var/www/src/MyApp/vendor/ 

Всякий раз, когда я выполняю файл chat-server в терминале, я получил следующую ошибку

 PHP Fatal error: Class 'MyApp\Chat' not found in /MyApp/chat-server.php 

Пожалуйста, помогите мне, как решить эту проблему.

Примечание . Полная информация о кодах существует на этой странице.

http://socketo.me/docs/hello-world

Этот вопрос был задан, но ответа на этот вопрос еще нет. Класс «MyChat \ Chat» не найден в C: \ wamp \ www \ bin \ chat-server.php

    Основным путем для автозагрузки является расположение файла composer.json, поэтому, если он живет в /var/www/src/MyApp/ , автозагрузка будет использовать это в качестве базы.

    В вашем случае вы говорите, что пространство имен MyApp можно найти в каталоге src (что означает /var/www/src/MyApp/src ). Это неверно, поскольку файл /var/www/src/MyApp/src/MyApp/Chat.php не существует.

    Вы можете решить эту проблему тремя способами:

    • Moving composer.json – вы можете переместить файл composer.json в /var/www , чтобы иметь возможность использовать его как базу;
    • Обновление автозагрузки (с использованием PSR-4). Вы также можете использовать PSR-4 вместо PSR-0 и настроить его как "autoload": { "psr-4": { "MyApp\\": "" } } ;
    • Реорганизация ваших файлов. Вы также можете изменить структуру файла на:

       /var/www/src/MyApp/ src/MyApp/ Chat.php composer.json 

    Если у вас нет файла composer.json и папка поставщика у root, это не сработает. Кроме того, не прикасайтесь к папке поставщика (и подпапкам). Структура папок должна быть такой:

     /composer.json /composer.phar /vendor/[misc] /src/MyApp/Chat.php 

    Наконец, после обновления composer.json обязательно запустите обновление:

     php composer.phar update 

    Таким образом, это сработает.

    Вы должны упомянуть базовый путь ваших классов, который должен быть автоматически загружен:

     { "autoload": { "psr-4": { "MyApp\\": "src/MyApp/" } }, "require": { "cboden/ratchet": "^0.4.0", "react/zmq": "0.2.*|0.3.*" } } 

    И запустите

    Автозагрузка композитора

    Сначала попробуйте выполнить автозагрузку файлов:

     $ composer update 

    Если он все еще не работает, require 'chat.php'; строку, require 'chat.php'; , только в начале файла chat-server.php . Это сработало для меня.