不能从google-api-php-client中获取Symfony中的文件

Eti*_*oël 7 php google-api symfony

我需要使用google-api-php-client.为此,我将Google的github存储库添加到了我的composer.json中.

"repositories": [
        {
            "type": "package",
            "package": {
                "name": "google/google-api-php-client",
                "version": "dev-master",
                "source": {
                    "type": "git",
                    "url": "https://github.com/google/google-api-php-client.git",
                    "reference": "master"
                },
                "autoload" :{
                    "classmap": ["src"]
                }
            }
        }
    ]
Run Code Online (Sandbox Code Playgroud)

...

"require" : {
...
        "google/google-api-php-client": "dev-master"
}
Run Code Online (Sandbox Code Playgroud)

一切都安装正确,我有以下目录结构:

/vendor
  /google
    /google-api-php-client
      /examples
      /src
        /Google
          Client.php
Run Code Online (Sandbox Code Playgroud)

当我在Controller中创建对象时,执行以下操作:

$client = new \Google_Client();
Run Code Online (Sandbox Code Playgroud)

找到路径和类.但是,我收到以下错误:

ContextErrorException: Warning: require_once(Google/Auth/AssertionCredentials.php): failed to open stream: No such file or directory in /Users/etienne/Developpement/Ima-Tech/Clients/lesoptions/vendor/google/google-api-php-client/src/Google/Client.php line 18
Run Code Online (Sandbox Code Playgroud)

在我的Client.php文件中,我在文件的开头有以下内容:

require_once 'Google/Auth/AssertionCredentials.php';
Run Code Online (Sandbox Code Playgroud)

如果我将行更改为:

require_once 'Auth/AssertionCredentials.php';
Run Code Online (Sandbox Code Playgroud)

一切都适合这种包容.但是,我不想require_once在google-api-php-client项目的每个文件中更改每个文件.我确定有一种方法可以改变包含路径或者某些东西,因此我想知道如何判断命名空间"Google"是当前目录?

编辑1:我猜这可能是因为这个项目(google-api-php-client)不使用命名空间...

anu*_*shr 7

尝试以下作曲家设置:

"repositories": [
  {
    "type": "vcs",
    "url": "https://github.com/google/google-api-php-client"
  }
],
...
"require": {
  "google/apiclient": "dev-master"
}
Run Code Online (Sandbox Code Playgroud)

请注意我正在使用google/apiclient而不是google/google-api-php-client.这对我来说似乎很好.我在PHP 5.4上.

我认为它不适合你的原因是因为你错过了include-path你的存储库定义.如果你看一下图书馆的composer.json,你会看到include-path指向srcdir.