omarlon/php-router

一个具有Laravel语法风格的PHP路由器

dev-Master 2024-05-17 21:39 UTC

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();