在php应用程序中构建页面URL

时间:2011-01-11 10:57:04

标签: php routing

我正在运行我自己的极轻的MVC框架(没有Router类)。 要知道要运行的控制器和操作,我正在使用应用于REQUEST_URI的库或正则表达式。有点像...

$regexps = array(
    '/admin/categories/' => array(
        'controller' => 'AdminCategories', 
        'action'     => 'index'
    ),
    '/admin/categories/add/' => array(
        'controller' => 'AdminCategories',
        'action'     => 'add'
    ),
);

一切正常,但是......

构建网址的最佳做法是什么?

BuildUrl('Controller', 'action', array('var1' => 'val1', 'var2' => 'val2'));

修改当前网址的最佳做法是什么(例如,我有10个不同的过滤选项的表格)?

ModCurrentUrl(array(...));

如何在应用程序中解决此问题?

PS:我没有使用conroller的动作参数,所有参数都取自$ _GET。

谢谢你,对不起我的英语。

2 个答案:

答案 0 :(得分:0)

最佳实践(我认为)是使用静态方法创建一个名为Routing(基本上是一个类)的库。然后,您可以使用Routing::buildUrl(...),并将其填入您将使用的所有uri相关方法(如modCurrentUrl ...)

答案 1 :(得分:0)

以下是几个很好的链接: http://robap.github.com/php-router/ http://code.google.com/p/routemap/ 我在你的例子中没有看到任何子目录的迹象。在大型项目中它可能没问题。 首先请求获取路由器类的方法,从那里获得有关路由的一些实际数据。其次,您将此数据放入正在启动应用程序的调度程序中。