我是作曲家的新手,我用它来安装oauth2-client。我想我对这应该如何运作有一些误解。
从我从命令行安装的phpleague github页面中使用
$data = json_decode(file_get_contents("http://api.vateud.net/notams/EPDE.json"));
foreach ($data as $obj) {
echo nl2br($obj->raw);
}
将此文件添加到/ usr / local / bin / vendor / league / oauth2-client。 文件结构与github上的文件结构相同,但我没有所有相同的文件。
文件中的php正在\ League \ OAuth2中查找文件,所以我收到的错误是找不到包含的文件,因为我没有该目录。
我做错了,还是我没有得到什么?
答案 0 :(得分:0)
反斜杠是PHP命名空间分隔符,而不是目录分隔符。
在TheLeague的oauth2的composer.json
中,这是autoload
指令:
"autoload": {
"psr-4": {
"League\\OAuth2\\Client\\": "src/"
}
},
它表示src
目录中的代码位于League\OAuth2\Client
名称空间中。
作曲家在命名空间和自动加载方面遵循PSR-4,所以如果你想知道发生了什么,请检查一下。
更新:
如果您已经安装了其他联盟扩展程序,例如oauth2-facebook
,它会将自己安装到同一个src
目录中 - 因为composer.json
中的自动加载指令。
为什么?
好吧,由于命名空间,你会在League\OAuth2\Client\Provider
命名空间中找到“Facebook”
由于PSR-4,这意味着他们需要进入同一目录,即使它们是不同的包。
这就是为什么你会在Facebook.php
目录中看到src/Providers
的原因。查看oauth2-facebook
repository
你可能有required
oauth2-facebook和oauth2-google,或者你需要的其他一个包需要它。它很少只是自我添加。 :)