riesenia/cakephp-routing

CakePHP路由插件,通过属性进行路由

安装: 594

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 2

开放问题: 0

类型:cakephp-plugin

v1.2.0 2024-09-11 08:22 UTC

This package is auto-updated.

Last update: 2024-09-11 08:23:34 UTC


README

《riesenia/cakephp-routing》包允许您使用控制器中的类属性来定义路由。这些路由随后被编译成routes_compiled.php文件,该文件包含在您的应用程序的routes.php文件中。

配置

如果您想为不在默认应用命名空间APP中的控制器添加路由,请将namespace选项传递给命令

routes:build -n Plugin

定义路由

  1. 使用Resources属性定义您的类路由。
<?php
namespace App\Controller;
use Riesenia\Routing\Attribute\Resources;

#[Resources(only: ['index', 'view'])]
class AuthorsController extends AppController
{
}
  1. 使用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';
};