arafatkn / wrest
WREST - WordPress REST API的简单易用的封装器
0.0.1
2023-03-26 11:47 UTC
Requires
- php: >=5.6
Requires (Dev)
- phpunit/phpunit: ^10
This package is auto-updated.
Last update: 2024-08-31 00:38:46 UTC
README
WREST (WordPress REST)
WREST - WordPress REST API的简单易用的流畅封装器。
安装
要求
- PHP >= 5.6
- WordPress >= 4.4
您可以通过两种方式安装wRest,通过composer和手动安装。
1. Composer安装
在您的项目(主题/插件)中添加依赖项
composer require arafatkn/wrest
现在如果您还没有这样做,请将autoload.php
添加到您的文件中。
require __DIR__ . '/vendor/autoload.php';
2. 手动安装
尚未提供
使用方法
WordPress API需要一个命名空间,因此您必须首先设置一个命名空间。
一种方法是在创建路由之前设置一个默认命名空间。
wrest()->setNamespace('my-plugin/v1'); wrest()->get('hello', function() { return 'Hello world'; });
或者您可以为一系列路由设置命名空间。
wrest()->usingNamespace('my-plugin/v1', function($wrest) { // You can use both $wrest or wrest() here $wrest->get('greeting', function(WP_REST_Request $req) { return 'Hello world'; }); });
传递的回调将获得一个WP_REST_Request
对象作为参数。
wrest()->get('greeting', function(WP_REST_Request $req) { return 'Hello world'; });
更多示例
wrest()->get('posts', $callback); wrest()->post('posts', [$postController, 'store']); wrest()->put($uri, $callback); wrest()->patch($uri, $callback); wrest()->delete($uri, $callback); wrest()->any($uri, $callback); // All Routes GET, POST, PUT, PATCH, DELETE wrest()->match(['GET', 'POST'], $uri, $callback);
权限管理
传递能力
wrest()->get('greeting', function() { return 'Hello world'; })->permission('manage_options');
传递回调
wrest()->get('greeting', function() { return 'Hello world'; })->permission(function(WP_REST_Request $req) { return is_user_logged_in(); });
参数传递
wrest()->get('/posts/{slug}', function(WP_REST_Request $request, $slug) { // })->param('slug', '[A-Za-z]+'); wrest()->get('/user/{id}/{name}', function ($request, $id, $name) { // })->param('id', '[0-9]+')->param('name', '[a-z]+'); wrest()->get('/user/{id}/{name}', function ($request, $id, $name) { // })->param(['id' => '[0-9]+', 'name' => '[a-z]+']);
如果您没有传递参数的正则表达式,则默认使用[^/]+
。
wrest()->get('/posts/{slug}', function(WP_REST_Request $request, $slug) { // Also Works. slug will contain all the characters between posts/ and next /. });
路由操作
操作可以是回调、类方法、静态类方法或非静态类方法,并且可以按以下方式传递。
wrest()->get('posts', function() => {}); wrest()->get('posts', 'getAllPosts'); // getAllPosts is a function. wrest()->get('posts', 'PostController@getAll'); // getAll is static function. wrest()->get('pages', [$pageController, 'getAll']); // getAll is non-static function. wrest()->get('authors', [CommentController::class, 'getAll']); // getAll is static function.
所有函数都将获得一个WP_REST_Request
对象作为参数。
支持的功能
- 所有路由的命名空间。
- 普通路由。
- 带有参数的路由。
- 路由操作。
- 权限管理。
即将推出的功能
- 添加对路由组的支持。
- 添加对动态命名空间的支持。
- 添加对命名空间组的支持。
- 添加对资源路由的支持。
- 添加对模式的支持。
- 添加对路由重定向的支持。
- 添加对将匹配的参数直接传递给操作的支持。
致谢
特别感谢Tareq Hasan提供了这个极好的想法。
贡献指南
这仍然是测试版,尽管我对它按预期工作有信心。您可以通过报告错误、修复错误、审查拉取请求等方式进行贡献。前往问题部分,您可以立即开始处理一个问题。如果您想添加或修复某些内容,请创建一个拉取请求。
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。