PHP中的Rails样式URL映射

时间:2011-05-20 15:30:43

标签: php mod-rewrite url-mapping

是否有任何标准库可以在PHP中进行Rails样式URL映射?我没有使用任何框架,所有代码都是手写的。基本上,我正在寻找一个这样做的库

example.com/user/1/active

这应该映射到用户,id = 1且status = 2(那些是参数)。我应该能够定义地图。

4 个答案:

答案 0 :(得分:2)

在PHP中有大约一万种方法可以做到这一点。

我最近成为了klein.php的粉丝,这是一个轻量级的路由器代码,带有一些方便的便利方法。它不是一个框架,如果你愿意,也不会妨碍你使用它。

它基本上只是“这里是一个URL模式,这里是模式匹配时运行的函数。”

答案 1 :(得分:0)

框架实际上是为了自动处理它而构建的,但是如果不使用框架,最好编写自己的.htaccess规则(如果你使用的是linux或os x),或者尝试查看CakePHP如何处理url重写并基于此。 例如:

http://example.com/name/corey
RewriteRule ^(.+)/(.+)$ /$1.php?name=$2 [NC,L]

这会将上面的url重写为/name.php?name=corey

答案 2 :(得分:0)

PHP的目的不是处理格式不同的URL。应该有一些自定义应用程序逻辑来处理这个问题。

你已经提到过你目前没有使用任何框架,所以我建议你加入Silex,这是一个基于Symfony 2组件的微框架。

以下是“Hello World”示例:

require_once __DIR__.'/silex.phar'; 

$app = new Silex\Application();

$app->get('/hello/{name}', function($name) use($app) { 
  return 'Hello '.$app->escape($name); 
});

$app->run();

您已经提到过您目前正在使用PHP 5.2。 Silex使用的命名空间可以从PHP 5.3等开始使用,因此您必须升级PHP以采用这种方法。

答案 3 :(得分:-1)