我正在运行我自己的极轻的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。
谢谢你,对不起我的英语。
答案 0 :(得分:0)
最佳实践(我认为)是使用静态方法创建一个名为Routing
(基本上是一个类)的库。然后,您可以使用Routing::buildUrl(...)
,并将其填入您将使用的所有uri相关方法(如modCurrentUrl ...)
答案 1 :(得分:0)
以下是几个很好的链接: http://robap.github.com/php-router/ http://code.google.com/p/routemap/ 我在你的例子中没有看到任何子目录的迹象。在大型项目中它可能没问题。 首先请求获取路由器类的方法,从那里获得有关路由的一些实际数据。其次,您将此数据放入正在启动应用程序的调度程序中。