我正在编写一个PHP应用程序。我想为我的应用程序的所有请求创建一个单点。这是在 index.php 文件中使用路由逻辑的最佳方法吗?根据URL中的参数,使用一个开关案例来包含所需的文件&创建完整的页面?
或者
有没有其他方法可以有效地做到这一点?
答案 0 :(得分:0)
您是否正在使用 MVC 之类的结构?
对我来说,index.php
应该 Bootstrap 脚本,它通常在我的应用程序中包含几行代码,仅此而已。
此外,我认为最常用的管理路由的方式是通过Apache的mod_rewrite
或其他网络服务器中的类似方法。
使用switch
语句可能会导致超过10-20个案例失控。这是我通常做的非常简化的版本:
http://localhost/news/100
将转换为http://localhost/index.php?module=news&id=100
。
在index.php
我有请求处理程序,它会加载module
,如下所示:
$app->run( $_REQUEST['module'],
array(
'action' => $_REQUEST['action'],
'id' => $_REQUEST['id']
)
);
module
有几个actions
。 run
的{{1}}方法查看是否有app
指定了; {如果没有,它将触发action
操作。在这种情况下,它将default
ID为show
的新闻。这样的事情将触发100
动作:
edit
这只是个主意。您不应该尝试在应用程序中使用上面的PHP代码,因为它不是生产级代码。我只想简要解释http://localhost/news/edit/100
语句方法的替代方法。