我已经使用下载的 zip 文件安装了 CodeIgniter。我正在尝试将 Google 登录集成到应用程序中。
我已经使用如下代码包含了 google-php-client。
<?php namespace App\Controllers;
include_once(APPPATH.'Libraries/google-api-php-client/vendor/autoload.php');
include_once(APPPATH.'Libraries/google-api-php-client/src/Client.php');
use CodeIgniter\Controller;
use Google\Client;
class Account extends Controller{
当我运行该应用程序时,浏览器会显示。
该页面现在无法工作,localhost 目前无法处理该请求。
php 错误日志显示
[2024 年 12 月 28 日 10:26:17 UTC] PHP 15. include_once() D:\wamp64\www\michelm\system\Autoloader\Autoloader.php:317
[2024 年 12 月 28 日 10:26:17 UTC] PHP 致命错误:未捕获错误:未在 D:\wamp64\www\michelm\system\Config\Services.php:405 中找到类“CodeIgniter\Log\Logger”
它还表明
[2024 年 12 月 28 日 10:26:17 UTC] PHP 致命错误:CodeIgniter\Log\Logger::emergency(Stringable|string $message, array $context = []) 的声明:void 必须与 D:\wamp64\www\michelm\system\Log\Logger.php 第 162 行中的 Psr\Log\LoggerInterface::emergency($message, array $context = []) 兼容
如何修复此问题。
他们的GitHub页面上分享了安装步骤。
它告诉您需要 PHP 8.0+,我将在此答案中假设您已经免除此要求。文档为您提供了两种可能的方法。第一种方法是使用Composer:
如果您尚未安装 Composer,请阅读有关Composer 的安装。
一旦您拥有正常运行的作曲家,请在项目根目录中运行以下命令:
如果遇到超时,则可以调整超时限制,如 README 中的示例所述:
当然,这个
process-timeout
问题需要在 Composer 模式的配置部分中解决。然后确保包含自动加载器:您可以将库固定到最新版本,以防止因重大更改而导致的问题。进一步阅读有关清理未使用的库的信息,这可能会帮助您将项目要求减少到您实际需要的程度。
您还可以从发布页面下载发布版本并将其嵌入到您的存储库中。
您遇到了
Logger
与 - 相关的错误。让我们确保 1. 在您开始使用 Google API PHP Client 之前,您的 CodeIgniter 可以正常工作;2. 您已正确安装 Google API PHP Client。一旦我们可以将这两个陈述作为事实,您将需要仔细阅读有关 CodeIgniter 和 Google API PHP 客户端兼容性的信息。
即可解决问题。您可以添加类似
到你的 composer.json
require
部分。