OAuth 2.0 Server PHP我遇到了一个小问题,我希望在我的项目中使用它。这是我的项目的树视图:
/ Model /包含管理API的所有类
/ Lib /包含所有第三方库
对于“IO \ Model”和库为“IO \ Lib”的模型,根命名空间为“IO”。我的问题来自命名空间,目前类“IO \ Lib \ OAuth2 \ Storage \ Pdo”是众所周知的,但找不到接口。我以前在其他项目上从未遇到过这个问题。
OAuth 2.0 Server PHP库到其自己的命名空间“OAuth2”。这是我的脚本Auth.php:
namespace IO\Model;
use IO\Lib\OAuth2 as OAuth2;
class Auth {
public function __construct() {
$this->config = Config::getInstance();
$storage = new OAuth2\Storage\Pdo(
array(
'dsn' => 'mysql:dbname='.$this->config->sql_database.';host='.$this->config->sql_host,
'username' => $this->config->sql_user,
'password' => $this->config->sql_password
)
);
$server = new OAuth2\Server($storage);
}
}
我收到了这个错误:
致命错误:第19行的/Lib/OAuth2/Storage/Pdo.php中找不到界面'OAuth2 \ Storage \ AuthorizationCodeInterface'
答案 0 :(得分:1)
看起来你们其中一个OAuth2库文件正在其一个或多个文件中引用Oauth2\Storage\AuthorizationCodeInterface
。问题是该库是自包含的,并且希望驻留在命名空间OAuth2
中。您将其放入名称空间IO\Lib\OAuth2
。
我不知道您使用哪种方法来加载文件(自动加载器?),但是您应该以保留其命名空间的方式包含第三方库。
答案 1 :(得分:1)
从此参考文献:http://alexbilbie.com/2013/02/securing-your-api-with-oauth-2/
你是否用作曲家安装了oauth? 这可能不会自动加载您的界面(没有自动加载器)
答案 2 :(得分:1)
根据上一个答案,如果自动加载器失败,则手动运行装载程序的解决方案 在下面给出