routing-interop/route-definition

路由的抽象定义

0.0.5 2021-03-26 10:59 UTC

This package is auto-updated.

Last update: 2024-09-26 18:44:28 UTC


README

安装

$ composer require routing-interop/route

用法

<?php

use Interop\Routing\Route\RouteCollection;

$routes = (new RouteCollection)
    ->get('/blog',        [BlogController::class, 'index'])
    ->get('/blog/{slug}', [BlogController::class, 'show'])
    ->post('/blog',       [BlogController::class, 'create'])
;

想法

  • 大多数路由库使用以下路由声明格式

    addRoute(<HTTP method>, <path>, <callable handler>)
    
  • path 可以是一个字符串、正则表达式或自定义格式。它通常包含所有变量部分或路径,类型约束。

  • 每个路径部分都是一个段(典型的URI语言)。

  • 简单的字符串段是静态的,而其他的是动态的。

  • 不在 path 中包含的其他路由约束

    • 主机
    • 方案
    • 端口
  • 一个动态段可以是可选的,并有一个默认值

  • 为大量路由使用共同的静态前缀非常有用

  • 声明一组具有相同路径但方法不同的路由可能很有用

  • 当没有匹配到路由时应该怎么做?错误的URI,错误的方法...
    添加默认的工作流程和响应可能很有用。

  • 为路由命名似乎已经过时了。等等...不,它没有:我们如何在不命名的情况下生成URI?

  • 内容协商不在路由的范围内

  • 参数转换(从 /post/{slug}controller(BlogPost $post))不在范围内。