OAuth 2.0 Server PHP,找不到接口

时间:2014-03-30 13:18:49

标签: php interface namespaces oauth-2.0

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'

3 个答案:

答案 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)

根据上一个答案,如果自动加载器失败,则手动运行装载程序的解决方案 在下面给出

Check this link