为此,我将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"]
}
}
}
]..。
"require" : {
...
"google/google-api-php-client": "dev-master"
}所有内容都已正确安装,我的目录结构如下:
/vendor
/google
/google-api-php-client
/examples
/src
/Google
Client.php当我在Controller中创建一个对象时,执行以下操作:
$client = new \Google_Client();找到路径和类。但是,我得到以下错误:
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在我的Client.php文件中,文件的开头有以下内容:
require_once 'Google/Auth/AssertionCredentials.php';如果我将行更改为:
require_once 'Auth/AssertionCredentials.php';每件事都能很好的包括进去。但是,我不想更改google客户端项目的每个文件中的每个require_once。我确信有一种方法可以更改包含路径,因此我想知道如何才能知道名称空间"Google“是当前目录?
编辑1 :我猜这可能是因为这个项目(Google Client)不使用名称空间.
发布于 2013-12-31 02:49:01
尝试以下composer设置:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/google/google-api-php-client"
}
],
...
"require": {
"google/apiclient": "dev-master"
}注意,我使用的是google/apiclient而不是google/google-api-php-client。这对我来说似乎很好。我正在使用PHP5.4。
我认为它不适用于您的原因是因为您在存储库定义中缺少了include-path。如果您查看库的composer.json,您将看到指向src dir的include-path。
https://stackoverflow.com/questions/20810447
复制相似问题