【问题标题】:OAuth 2.0 Example Auth ServerOAuth 2.0 示例身份验证服务器
【发布时间】:2014-01-30 01:56:11
【问题描述】:

我想尝试使用这个 OAuth2-Server 示例 (https://github.com/alexbilbie/oauth2-example-auth-server),但是当我想运行它时,它给了我错误 " Fatal error: Interface 'OAuth2\Storage\ClientInterface' not found in /var/www/oauth2-auth-server/model_client.php on line 2 "

我想我需要将自动加载器添加到 composer.json 我做到了,但它永远给我这个错误。但我也认为在 oauth.php 中我发现了这一行:

// Initiate the auth server with the models
$server = new \OAuth2\AuthServer(new ClientModel, new SessionModel, new ScopeModel);

但是 OAuth 文件夹中没有任何AuthServer?有没有人用过这个例子。提前致谢!

【问题讨论】:

  • 您是否使用 composer.json 文件和 Composer 来安装和管理依赖项?
  • 是的 Brodie,我正在使用 composer.json

标签: php oauth-2.0 slim


【解决方案1】:

假设您已从 require 文件的 require 键中所述的模块下载依赖项,则使用 Composer 自动完成自动加载。只需将其包含在 PHP 脚本的顶部即可访问类:

require_once __DIR__.'/to/vendor/autoload.php';

如果这些是手动下载的包,您需要将自动加载器指向它们并运行composer update

"autoload": {
    "psr-0": {
      "Util\\": "assets/"
  },
  "files": ["assets/Util/init.php"]
}

以上自动:

  • assets/Util/init.php 处的脚本附加到运行自动加载器的每个文件中;
  • 并在此示例中将类从 Util 命名空间(必须位于名为 Util 的文件夹中以满足 psr-0 约定,因此实际上位于 assets/Util/)中自动加载到运行自动加载器的任何文件中

您可能还需要使用use Namespace\Class as Class; 语法来管理命名空间问题。

【讨论】:

  • 问题出在命名空间中,我在 composer 文件中添加了 autloader 并将正确的命名空间更改为它工作的文件夹,谢谢!
  • 太棒了,很高兴我能帮上忙。
猜你喜欢
  • 2013-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-08
  • 2017-03-07
  • 2018-01-14
  • 1970-01-01
  • 2020-06-14
相关资源
最近更新 更多