riesenia / cakephp-routing
CakePHP路由插件,通过属性进行路由
v1.2.0
2024-09-11 08:22 UTC
Requires
- php: ^8.1
- cakephp/cakephp: ^5.0.1
- kcs/class-finder: ^0.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^10.1
- rshop/php-cs-fixer-config: ^3.0
README
《riesenia/cakephp-routing》包允许您使用控制器中的类属性来定义路由。这些路由随后被编译成routes_compiled.php
文件,该文件包含在您的应用程序的routes.php
文件中。
配置
如果您想为不在默认应用命名空间APP
中的控制器添加路由,请将namespace
选项传递给命令
routes:build -n Plugin
定义路由
- 使用
Resources
属性定义您的类路由。
<?php namespace App\Controller; use Riesenia\Routing\Attribute\Resources; #[Resources(only: ['index', 'view'])] class AuthorsController extends AppController { }
- 使用
Connect
属性定义您的函数路由。
当使用PHP中的Connect
属性定义路由时,在URI中添加/
将停止使用控制器名称作为路由的前缀。
<?php namespace App\Controller; use Riesenia\Routing\Attribute\Connect; class AuthorsController extends AppController { #[Connect(uri: 'cool-author')] public function index() { // Controller logic for /authors/cool-author } #[Connect(uri: '/custom-author')] public function custom() { // Controller logic for /custom-author } }
结果路由
$builder->connect('/authors/cool-author', 'Authors::index',[]); $builder->connect('/custom-author', 'Authors::custom',[]);
编译路由
运行路由命令
这将编译您的路由到一个routes_compiled.php
文件。
使用编译后的路由
更新您的routes.php
以包含编译后的路由。
<?php use Cake\Routing\RouteBuilder; return static function (RouteBuilder $routes) { require CONFIG . 'routes_compiled.php'; };