问题描述
我在PHP上还很陌生,所以这可能是一个愚蠢的问题。
我正在尝试编写一个简单的网站,该网站能够显示源服务器的实时信息,为此,我安装了Steam-condenser,这是一个支持通过槽作曲家查询服务器的库文件。
我想实例化库中定义的服务器对象,因此我需要composer autloader,如果我正确理解的话,通常可以加载我需要的所有类。
但是每次我尝试实例化对象时,我都会得到一个Class 'SourceServer' not found in [pathofmyphpfile] ...
。
奇怪的是,我正在使用智能感知,它知道该类,因为如果键入use S
,智能感知会在自动完成菜单中显示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中,所有库文件位于project文件夹> vendor中,该文件夹由composer在安装时生成。
解决方法
发现了问题
Composer默认情况下会安装steam-condenser v1.3.10,该版本的怪异composer.json文件缺少“ autoload”部分,这反过来又会导致错误的autoload文件生成,其中不包含任何类。 / p>
为了安全安装最新版本,您必须使用composer require koraktor/steam-condenser:dev-master
和composer dumpautoload -o
从master分支安装版本。