omarlon / php-router
一个具有Laravel语法风格的PHP路由器
dev-Master
2024-05-17 21:39 UTC
Requires
- php: >=8.1.0
This package is not auto-updated.
Last update: 2024-09-21 22:13:12 UTC
README
安装
使用composer安装或包含Router.php。为了使用更干净的URL,请使用以下 .htaccess 文件
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
示例
注册响应 "GET /" 的路由
Route::get('/', function()
{
return "Hello World!";
});
注册适用于任何HTTP动词(GET、POST、PUT和DELETE)的路由
Route::any('/', function()
{
return "Hello World!";
});
注册其他请求方法的路由
Route::post('user', function()
{
//
});
Route::put('user/(:num)', function($id)
{
//
});
Route::delete('user/(:num)', function($id)
{
//
});
注册多个HTTP动词的单个URI
Route::register(array('GET', 'POST'), $uri, function()
{
//
});
注册仅对HTTPS请求有效的路由
Route::secure('GET', '/', function()
{
//
});
通配符
强制URI段为任何数字
Route::get('user/(:num)', function($id)
{
//
});
允许URI段为任何字母数字字符串
Route::get('post/(:any)', function($title)
{
//
});
捕获不受限制的剩余URI
Route::get('files/(:all)', function($path)
{
//
});
允许URI段为可选
Route::get('page/(:any?)', function($page = 'index')
{
//
});
控制器路由
控制器提供了另一种管理您应用程序逻辑的方法。请注意,必须显式定义所有路由,包括到控制器的路由。这意味着没有通过路由注册公开的控制器方法无法访问。可以使用控制器路由注册自动公开控制器中的所有方法。
使用Router注册 "home" 控制器
Route::controller('home');
使用路由器注册多个控制器
Route::controller(array('dashboard.panel', 'admin'));
此约定类似于CodeIgniter和其他流行框架所采用的约定,其中第一个段是控制器名称,第二个是方法,其余段作为参数传递给方法。如果没有方法段,则将使用 "index" 方法。
此路由约定可能不适用于每种情况,因此您也可以使用简单直观的语法显式将URI路由到控制器操作。
注册指向控制器操作的路线
Route::get('welcome', 'home@index');
附加功能
获取您的网站基本URL
Router::base();
获取当前URI
Router::uri();