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

这是我的文件结构

/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.*"
    }
}

供应商文件夹存在于此位置

/var/www/src/MyApp/vendor/

每当我在终端中执行聊天服务器文件时,我收到以下错误

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

请帮助我如何解决这个问题

注: 完整的代码详细信息存在于此页面中

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

这个问题被问到,但这个问题仍然没有答案 Class'MyChat\Chat'未在C:\wamp\www\bin\chat-server...php的

有帮助吗?

解决方案

自动加载的主要路径是作曲家的位置。json文件,所以如果它住在 /var/www/src/MyApp/, ,自动加载将使用它作为基础。

在你的情况下,你说 MyApp 命名空间可以在 src 目录(这意味着 /var/www/src/MyApp/src).这不是真的,因为文件 /var/www/src/MyApp/src/MyApp/Chat.php 不存在。

您可以通过3种不同的方式解决此问题:

  • 搬家 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 dump-autoload

首先尝试自动加载文件:

$ composer update
.

如果它仍然不起作用,那么包括行生成的,只能在require 'chat.php';文件的开头。它为我工作了。

我用这个问题摔跤了几个小时,发现我缺少几个包裹。我能够用这个命令修复它:

php composer.phar install --no-dev -o
.

这是我在运行后看到的图片: 安装包

希望这有帮助!

在我的情况下,在花了半天的时间后,我意识到错误是因为我错过了这条线:

require 'vendor/autoload.php';
.
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top