【问题标题】:Class 'SourceServer' not found, using steam-condenser libray使用蒸汽冷凝器库未找到“源服务器”类
【发布时间】:2020-12-20 00:17:22
【问题描述】:

我是 PHP 新手,所以这可能是个愚蠢的问题。

我正在尝试编写一个简单的网站,该网站能够显示源服务器的实时信息,为此我安装了 steam-condenser,这是一个库,可以通过 composer 查询服务器。

我想实例化库中定义的服务器对象,所以我需要 composer autloader,如果我理解正确,它通常会加载我需要的所有类。

但每次我尝试实例化对象时,我都会得到一个Class 'SourceServer' not found in [pathofmyphpfile] ...

奇怪的是我正在使用 intelliphense,它知道类,因为如果我输入 use S intelliphense 在自动完成菜单中显示 SourceServer。

我整个下午都在尝试解决这个问题,但我没有尝试过。

据我了解,这可能与作曲家没有正确生成自动加载文件有关。

编辑:这是我的代码

index.php:

<?php
    require_once $_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php';

    use \SteamCondenser\Servers\SourceServer;

    $server = new SourceServer('serverip', port);

    $server->initialize();
    $server_info = $server->getServerInfo();
    $players = $server_info['numberOfPlayers'];
    $maxplayers = $server_info['maxPlayers'];
    $slot_info = $players . "/" . $maxplayers;
    $server->disconnect();
?>

如果有帮助,index.php 位于 projet 文件夹>web 中,所有库文件位于项目文件夹>vendor 中,由 composer 在安装时生成。

【问题讨论】:

  • 它在以下命名空间\SteamCondenser\Servers
  • 尝试使用 SteamCondenser\Servers\SourceServer 对我没有任何改变
  • 显示您的代码,您是否添加了自动加载器?该库的文档很薄,但有一些 tests 你可以看到它是如何联系在一起的。
  • @LawrenceCherone 我已经编辑了我的帖子
  • @LawrenceCherone 我试过没有用

标签: php class namespaces composer-php


【解决方案1】:

发现问题,

Composer 默认安装 steam-condenser v1.3.10,这是一个带有奇怪 composer.json 文件的版本,缺少“自动加载”部分,这反过来会导致生成不包含任何类的错误自动加载文件。

您必须使用 composer require koraktor/steam-condenser:dev-mastercomposer dumpautoload -o 从 master 分支安装版本才能安全地安装最新版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    相关资源
    最近更新 更多