aatis/routing

此包最新版本(1.1.0)没有可用的许可证信息。

Aatis 路由系统

1.1.0 2024-02-14 13:24 UTC

This package is auto-updated.

Last update: 2024-09-14 14:50:32 UTC


README

安装

composer require aatis/routing

用法

要求

首先,将路由器添加到您的容器配置中。

# config/services.yaml

include_services:
  - 'Aatis\Routing\Service\Router'

您可以向此路由器提供多个参数

Aatis\Routing\Service\Router:
    arguments:
        baseHomeController: 'Path\To\Your\HomeController',
        templateRenderer: 'Path\To\Your\TemplateRenderer',
        notFoundErrorTemplate: 'path/template.tpl',
        notFoundErrorVars:
            template_var1: 404
            template_var2: "Page not found !"

notFoundErrorTemplate(默认:/errors/error.tpl.php)和notFoundErrorVars(默认:[])是可选的

控制器

每个控制器都必须继承抽象类 AbstractController

class AatisController extends AbstractController
{
    // ...
}

AbstractController 类提供了一个 render 方法,允许您渲染模板。

class AatisController extends AbstractController
{
    public function hello(): void
    {
        $this->render('template/path', [
            'template_var1' => 'Hello',
            'template_var2' => 'World !'
        ]);
    }
}

主页控制器

在您的应用程序中,您必须有一个继承自抽象类 AbstractHomeController 的主页控制器。

class AatisHomeController extends AbstractHomeController
{
    public function home(): void
    {
        // ...
    }
}

对于主页方法,不需要 Route 属性

路由

您可以在控制器中创建您的路由,如下例所示

#[Route('/hello')]
public function hello(): void
{
    // ...
}

您可以将多个 Route 分配给同一控制器函数

您不能将相同的 Route 分配给多个控制器函数

带参数的路由

您还可以像以下示例那样为您的路由提供参数

#[Route('/hello/{name}/{age}')]
public function hello(string $name, int $age): void
{
    // ...
}