Ошибка NameScape. Застрял в «MyApp \ Chat»

Получение ошибки в простом примере храповика:

Fatal error: Uncaught Error: Class 'MyApp\Chat' not found

Моя структура файлов выглядит так:

root\composer.json
root\bin\chat-server.php
root\src\MyApp\Chat.php

Composer.json есть

{
"autoload": {
"psr-0": {
"MyApp": "src"}
},
"require": {
"cboden/ratchet": "0.3.*"}
}

chat-server.php это

<?php
use Ratchet\Server\IoServer;
use MyApp\Chat;

require dirname(__DIR__) . '/vendor/autoload.php';

$server = IoServer::factory(
new Chat(),
8080
);

$server->run();

и Chat.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) {
}
}

Я попробовал следующее, но все еще сейчас работает:
Неустранимая ошибка PHP: класс «MyApp \ Chat» не найден в /MyApp/chat-server.php

1

Решение

Проверьте название автозагрузки https://getcomposer.org/doc/04-schema.md#psr-0

Должно быть так:

{
"autoload": {
"psr-0": {
"MyApp\\": "src/"}
},
"require": {
"cboden/ratchet": "0.3.*"}
}

И делать

composer dump-autoload
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector