【发布时间】: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