php - Composer PHP PHP致命错误: 在/MyApp/chat server.php 中,没有找到类'MyAppChat'

  显示原文与译文双语对照的内容
118 0

我正在尝试运行棘轮应用程序演示,但我无法执行文件

这是我的文件结构

/var/www/src/MyApp/
/var/www/src/MyApp/chat.php
/var/www/src/MyApp/chat-server.php
<?php
use RatchetServerIoServer;
use MyAppChat;
#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.*"
 }
}

这里位置存在供应商文件夹

/var/www/src/MyApp/vendor/

每当我在终端中执行聊天服务器文件时,都会出现以下错误

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

请帮我解决这个问题。

注意:这里有完整的代码详细信息。

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

这个问题被问到但仍然没有回答这个问题,类'mychatchat'在 C:wampwwwbinchat-server.php in中没有找到

时间:原作者:0个回答

78 2

自动加载的主路径是 composer.json 文件的位置,因这里如果存在于 /var/www/src/MyApp/ 中,自动加载将使用。

如果是这样,你就可以在 src 目录( 这意味着 /var/www/src/MyApp/src ) 中找到 MyApp 名称空间。那不是 true 因为文件/var/www/src/MyApp/src/MyApp/Chat.php不存在。

你可以用 3种不同的方式解决这里问题:

  • 移动 composer.json 可以将文件移动到 /var/www,以便能够将它的用作基文件;
  • 自动更新 autoloading ( 使用 psr-4 ) - 你还可以使用 PSR-4 代替 PSR-0,并配置为"autoload": {"psr-4": {"MyApp":"" } };
  • 你还可以对文件 你还可以将文件结构更改为:

    /var/www/src/MyApp/
     src/MyApp/
     Chat.php
     composer.json
原作者:
116 1

如果你没有 composer.json 文件和在 root的供应商文件夹,它将无法工作。另外,不要触摸供应商文件夹( 和子文件夹) 。文件夹结构必须如下所示:

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

最后,更新 composer.json, 后,请确保运行更新:

php composer.phar update

这样就能工作了。

原作者:
95 4

必须提及需要为autoloaded的类的基本路径:

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

并运行

Composer 转储自动加载

原作者:
...