I am trying to run the Ratchet application demo but I can't execute the file
This is my file structure
/var/www/src/MyApp/
/var/www/src/MyApp/chat.php
/var/www/src/MyApp/chat-server.php
<?php use Ratchet\Server\IoServer; use MyApp\Chat; #require "chat.php"; require 'vendor/autoload.php'; $server = IoServer::factory( new Chat(), 8080 ); $server->run();
/var/www/src/MyApp/composer.json
{ "autoload": { "psr-0": { "MyApp": "src" } }, "require": { "cboden/Ratchet": "0.3.*" } }
Vendor Folder is exist in this location
/var/www/src/MyApp/vendor/
Whenever I am executing the chat-server file in terminal I got the following error
PHP Fatal error: Class 'MyApp\Chat' not found in /MyApp/chat-server.php
Please help me how to resolve this
Note: The complete code details are exist in this page
http://socketo.me/docs/hello-world
This question was asked but still no answer for that question too Class 'MyChat\Chat' not found in C:\wamp\www\bin\chat-server.php
The main path for the autoloading is the location of the composer.json file, so if that lives in /var/www/src/MyApp/
, the autoloading will use that as a base.
In your case, you say the MyApp
namespace can be found in the src
directory (which means /var/www/src/MyApp/src
). That's not true, since the file /var/www/src/MyApp/src/MyApp/Chat.php
does not exists.
You can solve this issue in 3 different ways:
composer.json
- You can move the composer.json
file to /var/www
, to be able to use that as base;"autoload": { "psr-4": { "MyApp\\": "" } }
;Reorganizing your files - You can also change the file structure to:
/var/www/src/MyApp/
src/MyApp/
Chat.php
composer.json