0

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

example.com/user/1/active

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

4

4 回答 4

2

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

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

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

于 2011-05-20T15:36:51.443 回答
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 才能采用这种方法。

于 2012-04-05T12:14:07.833 回答
0

框架确实是为自动处理而构建的,但如果不使用框架,您最好编写自己的 .htaccess 规则(如果您使用的是 linux 或 os x),或者尝试查看 CakePHP 如何处理 url 重写和以此为基础。例子:

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

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

于 2011-05-20T16:57:30.920 回答