lumenpress / routing
该软件包最新版本(v0.1.7)没有可用的许可证信息。
v0.1.7
2017-10-07 08:40 UTC
Requires
- lumenpress/nimble: ~0.1
Requires (Dev)
- kint-php/kint: ^2.2
- laravel/lumen-framework: 5.4.*
- lumenpress/testing: ^0.1.1
- phpunit/phpunit: ~5.0
- vlucas/phpdotenv: ^2.4
This package is not auto-updated.
Last update: 2024-09-28 04:03:36 UTC
README
路由需要与 lumenpress/laravel 或 lumenpress/lumen 一起使用。
安装
composer require lumenpress/routing
在 bootstrap/app.php
中注册提供者
$app->register(LumenPress\Routing\ServiceProvider::class);
需要注意的是,Laravel 也必须在 bootstrap/app.php
文件中注册,否则将无法正常工作。
使用方法
我们首先需要获取 WordPress 路由器的实例。
$router = app('wp.router');
或者使用路由服务容器作为外观。
use LumenPress\Routing\Facades\Route;
路由
$router->is($condition, $callback); $router->get($condition, $callback); $router->post($condition, $callback); $router->put($condition, $callback); $router->patch($condition, $callback); $router->delete($condition, $callback); $router->options($condition, $callback); $router->group([ 'middleware' => 'auth', 'namespace' => 'App\Http\Controllers' ], function ($router) { // });
作为外观。
use LumenPress\Routing\Facades\Route; Route::is($condition, $callback); Route::get($condition, $callback); Route::post($condition, $callback); Route::put($condition, $callback); Route::patch($condition, $callback); Route::delete($condition, $callback); Route::options($condition, $callback); Route::group([ 'middleware' => 'auth', 'namespace' => 'App\Http\Controllers' ],function () { // });
条件
路由参数
Route::is(string $condition, $callback); Route::is([$condition => int|string|array $args], $callback);
模板
查询条件
路由条件
['template' => string|array $template]
回调参数
LumenPress\Nimble\Models\Post $post
;
// register templates LumenPress\Nimble\Models\Post::registerTemplate([ 'home' => [ 'name' => 'Home Page' ], 'contact' => [ 'name' => 'Contact Us' ], 'about' => [ 'name' => 'Contact Us' ], ]); Route::is(['template' => 'home'], function (\LumenPress\Nimble\Models\Post $post) {}); // Multiple Route::is(['template' => 'contact', 'about'], $callback);
页面
查询条件
路由条件
页面
['page' => int|string|array $page]
回调参数
LumenPress\Nimble\Models\Post $post
optional
;
// page.php Route::is('page', function (\LumenPress\Nimble\Models\Post $post) {}); // page-2.php Route::is(['page' => 2], $callback); // page-sample-page.php Route::is(['page' => 'sample-page'], $callback); // page-about.php or page-contact.php Route::is(['page' => ['about', 'contact']], $callback); // By path Route::is(['page' => 'about/company'], $callback); Route::is(['page' => 'about/staff'], $callback);
单个
查询条件
路由条件
单个
['single' => int|string|array $post]
回调参数
LumenPress\Nimble\Models\Post $post
optional
;
// single.php Route::is('single', function (\LumenPress\Nimble\Models\Post $post) {}); // query by post id Route::is(['single' => 1], $callback); // single-book.php Route::is(['single' => 'book'], $callback); // single-book.php or single-newspaper.php Route::is(['single' => ['book', 'newspaper']], $callback); // single-book-foo.php // or single-book-bar.php // or single-newspaper-foo.php // or single-newspaper-bar.php $single = [ // $post_type, $slug ['book', 'foo'], ['book', 'bar'], ['newspaper', 'foo'], ['newspaper', 'bar'], ]; Route::is(['single' => $single], $callback);
单数
查询条件
路由条件
单数
['singular' => string|array $posttype]
回调参数
LumenPress\Nimble\Models\Post $post
optional
;
// singular.php Route::is('singular', function (\LumenPress\Nimble\Models\Page $post) {}); // single-book.php Route::is(['singular' => 'book'], $callback); // single-book.php or single-newspaper.php Route::is(['singular' => ['newspaper', 'book']], $callback);
附件
查询条件
路由条件
附件
回调参数
LumenPress\Nimble\Models\Attachment $attachment
optional
;
// attachment.php Route::is('attachment', $callback);
嵌入
自 4.5 版起
查询条件
路由条件
嵌入
回调参数
LumenPress\Nimble\Models\Post $post
optional
;
// embed.php Route::is('embed', function (LumenPress\Nimble\Models\Post $post) {});
存档
查询条件
路由条件
存档
['archive' => string|array $postType]
回调参数
string $postType
optional
;
// archive.php Route::is('archive', $callback); // archive-book.php Route::is(['archive' => 'book'], $callback); // archive-newspaper.php or archive-book.php Route::is(['archive' => ['newspaper', 'book']], function ($postType) {});
分类
查询条件
路由条件
分类
['tax' => string|array $taxonomy]
['tax' => ...[string|array $taxonomy, int|string|array string|array $term]]
回调参数
LumenPress\Nimble\Models\Taxonomy $taxonomy
optional
;
// taxonomy.php Route::is('tax', function (\LumenPress\Nimble\Models\Taxonomy $taxonomy) {}); // taxonomy-channel.php Route::is(['tax' => 'channel'], $callback); // taxonomy-channel-bbc1.php Route::is(['tax' => [['channel', 'bbc1']]], $callback);
分类
查询条件
路由条件
分类
['category' => string|array $category]
回调参数
LumenPress\Nimble\Models\Category $category
optional
;
// category.php Route::is('category', function (\LumenPress\Nimble\Models\Category $category) {}); // category-9.php Route::is(['category' => 9], $callback); // category-news.php Route::is(['category' => 'news'], $callback); // by category name Route::is(['category' => 'Stinky Cheeses'], $callback); // by id, slug, name... Route::is(['category' => [9, 'blue-cheese', 'Stinky Cheeses']], $callback);
标签
查询条件
路由条件
标签
['tag' => string|array $tag]
回调参数
LumenPress\Nimble\Models\Tag $tag
optional
;
// tag.php Route::is('tag', function (\LumenPress\Nimble\Models\Tag $tag) {}); // tag-30.php Route::is(['tag' => 30], $callback); // tag-extreme.php Route::is(['tag' => 'extreme'], $callback); // tag-mild.php Route::is(['tag' => 'mild'], $callback); // by id, slug, name... Route::is(['tag' => [30, 'mild', 'extreme']], $callback);
作者
查询条件
路由条件
作者
['author' => int|string|array $author]
回调参数
LumenPress\Nimble\Models\User $author
optional
;
// author.php Route::is('author', function (\LumenPress\Nimble\Models\User $user) {}); // author-4.php Route::is(['author' => 4], $callback); // author-john-jones.php Route::is(['author' => 'john-jones'], $callback); // by display name Route::is(['author' => 'Vivian'], $callback); // by mixed Route::is(['author' => [4, 'john-jones', 'Vivian']], $callback);
日期
查询条件
路由条件
日期
回调参数
$year
optional
;$month
optional
;$day
optional
;
// date.php Route::is('date', function ($year = null, $month = null, $day = null) {});
首页
查询条件
路由条件
首页
// home.php Route::is('home', $callback);
前台
查询条件
路由条件
前台
// front_page.php Route::is('front', $callback);
搜索
查询条件
路由条件
搜索
// search.php Route::is('search', $callback);
404
查询条件
路由条件
404
// 404.php Route::is('404', $callback);
自定义路由条件
Route::registerCondition('author.role', function ($role) { if (! is_author()) { return false; } $author = get_queried_object(); return $role == $author->roles[0]; }); Route::is(['author.role' => 'administrator'], $callback);