Silex/Google API

Silex/Google API

我正在开发 Silex 应用程序,试图通过 Composer 实现 Google API PHP 客户端,但运气不佳。我尝试了多种不同的配置,包括 app.php、autoload_namespaces.php、autoload_classmap.php 以及 Google_Client class 本身的变体。

我加载库:

"require": {
    "google/apiclient": "^1.1",
    ...
}

然后我添加:

"autoload": {
    "psr-0": {
        "Google\Client": "vendor/google/apiclient/src/"
    }
},

获取 autoload_namespaces.php

中的库

在 app.php 我有:

use Google\Client;
...
$app->register(new Client());

这给了我“致命错误:Class 'Google\Client' 未在...中找到” 部分问题似乎是 Google 库在其 class 名称中使用了下划线。当我从库中的 'class Google_Client' 中删除 'Google_' 时,错误发生变化,但仍然没有雪茄...

所以我认为这与下划线的使用和google库中classes的命名有关。我可以使用其他 Composer 配置来解决此问题吗?或者另一个能够访问此库的 Silex 解决方法?

谢谢!

你永远不应该在你的自动加载映射中添加你的依赖项(composer 会为你做)。在这种情况下,google PHP API 客户端未命名空间,因此作曲家无法使用命名空间自动加载库。

为了使用它,您只需要在 class:

之前附加根命名空间
<?php

require 'path/to/vendor/autoload.php';  // remember to include composer's autoload file

$gclient = new \Google_Client();