maymeow / cake-attribute-routing
MayMeow/Routing 插件用于 CakePHP
v0.2.0
2021-11-09 20:41 UTC
Requires
- php: >=7.2
- cakephp/cakephp: ~4.2.0
Requires (Dev)
- phpunit/phpunit: ^8.5 || ^9.3
This package is auto-updated.
Last update: 2024-09-10 03:01:57 UTC
README
CakePHP 4.* 的属性路由
要求
- CakePHP 4.x
- PHP 8.x ⚠️ 此插件使用仅在 PHP 8 及更高版本中可用的功能。
- 缓存(已测试与 redis),所有路由在可使用前都会被缓存。
安装
您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。
安装 composer 包的推荐方法是
composer require maymeow/cake-attribute-routing
并加载它。
php bin/cake.php plugin load MayMeow/Routing
配置
在应用程序配置中添加新的键 Controllers
,并在其中提供您想要使用属性路由的控制器名称。
// app_local.php 'Controllers' => [ \App\Controller\UsersController::class ]
使用方法
要定义路由,请向方法添加具有所需路径的属性 Route
,如下所示
#[Route('/users')] public function index() { $users = $this->paginate($this->Users); $this->set(compact('users')); }
通配符参数
有时您需要向您的操作传递参数,在这种情况下,您可以使用通配符路由。
#[Route('/users/edit/*')] public function edit($id = null) { $user = $this->Users->get($id, [ 'contain' => [], ]); // ... }
⚠️ 如果您正在创建通配符路由,您必须在子路径中定义所有其他路由器。
命名参数
您可以使用命名参数而不是通配符。当您想向控制器的操作传递多个参数时,这将很有用。
#[Route('/users/:id/details', options: ['id' => '\d+', 'pass' => ['id']])] public function view($id = null) { $user = $this->Users->get($id, [ 'contain' => [], ]); $this->set(compact('user')); }
当您使用命名参数创建路由时,您必须传递选项来告知路由器您想要传递哪些参数到控制器。
控制器操作的路径 Controller::action
会自动从控制器类名和方法名生成;
故障排除
此插件使用缓存进行路由:所有路由在使用前都需要进行缓存。如果您在路由方面遇到问题,请尝试清除缓存。
发现错误?或者您想要新功能?打开新问题 https://github.com/MayMeow/cake-attribute-routing/issues
许可 MIT