如何在CodeIgniter控制器中调用第三方Composer包(MineStat示例)
解决CodeIgniter中引入MineStat报
Class 'MineStat' not found的问题 方法一:使用Composer安装(推荐)
安装MineStat
在项目根目录执行Composer命令:composer require fragland/minestat开启CodeIgniter的Composer自动加载
打开application/config/config.php,找到$config['composer_autoload'],设置为TRUE(或直接指定vendor/autoload.php的路径):$config['composer_autoload'] = TRUE;控制器中正确调用
顶部添加正确的命名空间引用,再实例化类:use MineStat\MineStat; class YourController extends CI_Controller { public function getServerStatus($ip) { // 服务器用默认端口25565时可省略第二个参数 $ms = new MineStat($ip, 25565); return $ms->is_online(); } }
方法二:手动引入文件
存放MineStat文件
下载MineStat的PHP源码,将src/MineStat.php复制到CodeIgniter的application/third_party目录下。控制器中引入并使用
可通过CodeIgniter的文件加载方法引入,再结合命名空间调用:class YourController extends CI_Controller { public function getServerStatus($ip) { // 引入第三方文件 $this->load->file(APPPATH . 'third_party/MineStat.php'); // 方式1:添加命名空间引用 use MineStat\MineStat; $ms = new MineStat($ip, 25565); // 方式2:直接使用完整命名空间实例化,无需use // $ms = new \MineStat\MineStat($ip, 25565); return $ms->is_online(); } }
关键注意点
- 你之前写的
use MineStat;有误,MineStat的类位于MineStat命名空间下,类名同样是MineStat,正确引用应为use MineStat\MineStat;。 - 手动引入时务必检查文件路径是否正确,确保
APPPATH指向项目的application目录。 - 确认服务器PHP版本满足MineStat要求(需PHP 7.0及以上)。
内容的提问来源于stack exchange,提问作者Bünyamin Pollin
相关产品推荐
相关产品推荐

