milo / github-api-nette
Nette 框架扩展,用于轻松访问 Github API
Requires
- php: >=5.6.0
- milo/github-api: ~1.0
- nette/di: ~2.4
Suggests
- tracy/tracy: To use Tracy bar features
This package is auto-updated.
Last update: 2024-09-06 09:45:34 UTC
README
这是 Nette 框架扩展,用于 milo/github-api 库。它为你提供
- 登录和登出操作的准备好的展示器
- Tracy 面板
Milo\Github\Api
服务在容器中- 以及一些其他功能...
安装
主分支与 Nette 2.4 兼容。对于 Nette 2.0-2.3,请使用分支 v2.1 和 v2.2(但它们不再维护)。
如果遇到问题,请创建问题。
使用 Composer 进行安装
composer require milo/github-api-nette @dev
在 config.neon
中注册扩展
extensions:
github: Milo\Github\NetteExtension\Extension(%debugMode%)
自从你注册了扩展,你就在 DI 容器中得到了一个新服务
github.api
是Milo\Github\Api
的实例
当你设置 clientId
和 clientSecret
(稍后提及)到配置文件中时,你会得到以下两个
github.login
是Milo\Github\OAuth\Login
的实例github.user
是Milo\Github\NetteExtension\User
的实例
配置
扩展无需任何配置即可工作。但你的 Github API 请求将被速率限制且未经验证。
在 config.neon
中配置扩展。如果你有一个静态令牌,你可以手动设置它
github:
auth:
token: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
如果你想通过认证过程动态获取令牌,请设置 clientId
和 clientSecret
github:
auth:
clientId: 'xxxxxxxxxxxx'
clientSecret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
你可以同时使用它们。认证获得的令牌将在获取时使用。
完整配置
services:
ownClient: Milo\Github\Http\StreamClient
github:
cached: FALSE # (default TRUE) read below...
client: @ownClient # (default NULL) set own HTTP client
auth:
token: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
clientId: 'xxxxxxxxxxxx'
clientSecret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
scopes: ['user', 'repo'] # (default [])
缓存
cached
配置选项控制缓存机制。
FALSE
- 不使用缓存
使用以下内容,将使用 Http\CachedClient
TRUE
- 每个请求都会检查更新(int)
- int 秒内不会检查更新INF
- 永远不会检查更新(永久缓存)
警告 - (int)
和 INF
仅用于开发目的,不应在生产环境中使用。这是因为缓存可能过时,并且 Github 可能持有更新的数据。
认证
为了帮助获取 OAuth 令牌,我们为你准备了一个抽象的 Milo\Github\NetteExtension\Presenter
。在你的应用程序中使用它
namespace App\Presenters; class GithubPresenter extends Milo\Github\NetteExtension\Presenter { # Called after successfull authentication on Github web page public function actionSignInRedirect() { $this->flashMessage('Signed IN'); $this->redirect('Homepage:'); } # Called on logging out public function actionSignOutRedirect() { $this->flashMessage('Signed OUT'); $this->redirect('Homepage:'); } }
以常规方式创建链接或重定向到以下展示器操作
Github:signIn
用于登录Github:signOut
用于登出
注意:准备好的展示器需要配置 clientId 和 clientSecret。
即使你认证了或者没有认证,你也在 DI 容器中有一个 github.user
Milo\Github\NetteExtension\User 服务。你可以检查 $user->isLoggedIn()
并获取一些基本信息,如登录名、姓名、头像 URL...
Tracy 面板
许可证
MIT 许可证 (MIT)
版权所有 © 2014 Miloslav Hůla
特此授予任何获得此软件及其相关文档文件(以下简称“软件”)副本的任何人,免费使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许获得软件的人做上述事项,但需遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何形式的质量保证,无论是明示的、暗示的,还是包括但不限于适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担责任,无论是在合同、侵权或其他行为中,也不管这些索赔、损害或其他责任是否源于、产生于或与该软件或使用该软件或其他方式相关。