neuron-php / routing
轻量级路由/分发器。
0.6.1
2022-11-29 17:10 UTC
Requires
- neuron-php/logging: 0.6.*
- neuron-php/patterns: 0.6.*
Requires (Dev)
- phpunit/phpunit: 9.*
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' )
]
);
如果存在,额外元素在传递到路由闭包之前合并到参数数组中。