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中没有找到

时间: 原作者:

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 转储自动加载

原作者:
...