You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter 4.5.5集成Google登录遇Logger类缺失与兼容性错误求解决

解决CodeIgniter集成Google登录时的依赖冲突错误

问题根源

这两个致命错误是google-api-php-client自带的PSR Log库与CodeIgniter内置的PSR Log版本不兼容导致的:

  • 手动引入google客户端的autoload.php会干扰CodeIgniter的类加载机制,导致系统核心的CodeIgniter\Log\Logger类无法被正确加载
  • 两个依赖库中LoggerInterface::emergency的方法签名不一致,触发方法兼容错误

解决步骤

1. 移除手动放置的google-api-php-client,改用Composer安装

手动引入第三方库极易引发依赖冲突,Composer会自动处理版本兼容:

  • 删除项目中Libraries/google-api-php-client整个文件夹
  • 在项目根目录打开终端,执行Composer命令安装兼容版本的Google客户端:
composer require google/apiclient:^2.0

2. 修正Controller中的代码,使用Composer自动加载

删除手动的include_once语句,只保留必要的命名空间引用:

<?php namespace App\Controllers;

use CodeIgniter\Controller;
use Google\Client;

class Account extends Controller{
    // 你的业务逻辑代码
}

3. 处理PSR Log版本兼容(若仍有报错)

  • 打开项目根目录的composer.json,检查require字段中psr/log的版本,确保其与CodeIgniter官方要求的版本一致(CodeIgniter 4通常要求psr/log:^1.0 || ^2.0)
  • 执行以下命令让Composer自动调整所有依赖的兼容版本:
composer update

4. 验证CodeIgniter核心文件完整性

如果上述步骤后仍提示找不到CodeIgniter\Log\Logger类:

  • 确认system/Log/Logger.php文件存在,且文件顶部的命名空间为namespace CodeIgniter\Log;
  • 若文件损坏或缺失,重新下载对应版本的CodeIgniter压缩包,替换项目中的system目录

内容的提问来源于stack exchange,提问作者arun kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:22:44