类“;谷歌配置;找不到


Class "Google_Config" not found

我试图通过这里的说明实现Google的登录API,但由于某些原因,当我尝试运行它时,我总是得到:

致命错误:在/home/中找不到类"Google_Config"/Google/Client.php在线76

我确信我正确地链接到了Client.php-我不认为这是我自己代码中的问题。有人知道这里可能发生什么吗?谢谢

此错误意味着您没有使用Composer来安装客户端。没有Composer,在你的脚本中你应该

set_include_path(get_include_path() . PATH_SEPARATOR . dirname($_SERVER['SCRIPT_FILENAME']) . 'vendor/google-api-php-client/src');  
require_once '/path/to/autoload.php';  
require_once '/path/to/Client.php';

如果没有autoload.php,就找不到类。在Client.php中,类定义之前的代码试图加载autoload.php。但您已经找到了Client.php,并给出了它的完整路径。因此不会加载autoloadphp。

正如您所说,当您重新安装API时,您的问题得到了解决。我想你第二次用Composer吧。

澄清:根据谷歌文档,上面的注释并不意味着跳过正确的客户端安装。适用于"google/apiclient":"1.0.*@beta"

你确定你从github下载了整个版本而不仅仅是master分支吗?您应该有/vvendor和/src目录,然后需要/src/autoload.php

谷歌的自动加载器对我不起作用,我不知道是因为旧版本的PHP还是与竞争对手的自动加载器冲突。

我甚至尝试手动包括谷歌自动加载器(它应该是多余的,因为src/Google/Client.php已经是require_onceautoload.php:

require_once 'google-api-php-client/autoload.php'
require_once 'google-api-php-client/src/Google/Client.php'

Google_Config从未找到。。。

最后,唯一的解决方案是中所述的解决方案https://stackoverflow.com/a/26985116/3338098即

set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/google-api-php-client/src');
require_once 'Google/Client.php'

我为此斗争了一段时间。原因其实很简单:

我在git"config.php"中忽略了它,它忽略了这个文件,这就是为什么它不在我的生产环境中。

我可以通过以下步骤来解决问题

> cd "youfolder"
> composer install

不要将供应商文件夹保存在根文件夹中,而是将其保存在google-api-php-client-master文件夹中,并使用以下行将其包含在项目中

require_once DIR.'/google-api-php-client-master/vendor/autoload.php';