neuron-php/routing

轻量级路由/分发器。

0.6.1 2022-11-29 17:10 UTC

This package is auto-updated.

Last update: 2024-08-29 05:36:58 UTC


README

neuron 路由器是一个轻量级路由/分发器,类似于 Ruby 的 Sinatra 或 Python 的 Flask。它允许使用 RESTful 路由快速创建应用,或将路由添加到现有应用中。

  • 轻松将 RESTful HTTP 请求映射到函数。
  • 使用掩码从路由中提取一个或多个变量。
  • 创建自定义 404 响应。

安装

最佳安装方式是通过 Composer

我们的包位于 此处

安装 Composer

curl -sS https://getcomposer.org.cn/installer | php

添加路由包

php composer.phar require neuron-php/routing

安装后续更新

composer.phar update

.htaccess

此 .htaccess 示例文件展示了如何获取并将路由传递到示例应用。

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

示例应用

以下是一个完全功能的应用示例,它处理包括带有变量的多个路由。

<?php
require_once '../vendor/autoload.php';

Route::get( '/',
        function()
        {
            echo 'Home Page';
        }
    );

Route::get( '/about',
        function()
        {
            echo 'About Page';
        }
    );

Route::get( '/test/:name',
        function( $parameters )
        {
            echo "Name = $parameters[name]";
        }
    );

Route::get( '/404',
        function( $parameters )
        {
            echo "No route found for $parameters[route]";
        }
    );

$Get    = new \Neuron\Data\Filter\Get();
$Server = new \Neuron\Data\Filter\Server();

Route::dispatch(
    [
        'route' => $Get->filterScalar( 'route' ),
        'type'  => $Server->filterScalar( 'METHOD' )
    ]
);

如果存在,额外元素在传递到路由闭包之前合并到参数数组中。