simonhamp/routes

此包已被废弃,不再维护。未建议替代包。

基于CodeIgniter核心Router.php的PHP低级别路由类。

v2.0.1 2017-11-08 16:30 UTC

This package is auto-updated.

Last update: 2021-07-03 19:29:50 UTC


README

嗨,感谢您查看Routes!Routes是一个低级别的PHP类,用于定义和使用类似于CodeIgniter的URL路由模式。实际上,Routes是基于CodeIgniter的实现

安装

通过命令行使用Composer进行安装

$ composer require simonhamp/routes

使用方法

要使用Routes,您只需将类放在应用程序的可访问位置。然后您需要定义一些路由并将它们注册

<?php

include 'vendor/autoload.php';

use SimonHamp\Routes;

Routes::add(array(
    'testing/(:num)' => 'test/$1',
    'posts/(:any)'   => 'news/$1'
));

$origin = 'testing/1';

echo Routes::route($origin);
// -> 'test/1'

为什么使用Routes?

与应用程序URL重写(例如 .htaccess/mod_rewrite)相比,应用程序内路由是定义网站和应用程序中URL模式的一种流行方法。它允许开发人员使应用程序看起来以一种方式,但实际上却以另一种方式运行。它在MVC Web框架(Rails、Sinatra、CakePHP、CodeIgniter等)中最常见。路由简单但强大,该概念在框架之外的其他情况下也非常有用。

其他 尝试可移植路由库,但它们与MVC框架架构过于紧密,无法在框架之外使用。这就是Routes的用武之地。您可以将其用作另一个框架的路由系统,或者将其完全分开。

使用Routes,您可以使用简单的指令定义复杂的路由,并在代码中以返回变量获取重写后的URL。因此,它不需要特定的Web服务器。它不做任何复杂的事情,只是根据您提供的规则按顺序重写您提供的URL。简单。

希望您觉得它很有用! :)

有问题?评论?请提出问题

但我需要一个真正的路由器!

那么我建议您使用FastRoute,这是@nikic的杰作。它非常快,有一些很棒的功能,包括一个将路由的各个部分传递到您定义的方法的调度器。